From 317e39b8ee757222e0755a17074d8469f7b14f84 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 16 Feb 2012 17:59:53 +0200 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=BF=D1=82=D0=B8=D0=BC=D0=B8=D0=B7?= =?UTF-8?q?=D0=B0=D1=86=D0=B8=D1=8F=20=D0=B2=D1=8B=D0=B2=D0=BE=D0=B4=D0=B0?= =?UTF-8?q?=20=D1=81=D1=82=D0=B0=D1=82=D0=B8=D1=81=D1=82=D0=B8=D0=BA=D0=B8?= =?UTF-8?q?=20=D0=B2=20=D1=80=D0=B0=D0=B7=D0=B4=D0=B5=D0=BB=D0=B5=20=D0=BB?= =?UTF-8?q?=D1=8E=D0=B4=D0=B5=D0=B9.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Так конструкция в запросе SELECT выполняется быстрее, т.к. именно по тому полю, по которому был поиск идет подсчет, а когда поле подсчета указывается явно, как это сделано сейчас (count(user_id)), то после выборки по условиям мускул начинает ещё выковыривать user_id для каждой строки и только тогда считать по этому полю. --- classes/modules/user/mapper/User.mapper.class.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/classes/modules/user/mapper/User.mapper.class.php b/classes/modules/user/mapper/User.mapper.class.php index 5f022ddd..7079f892 100644 --- a/classes/modules/user/mapper/User.mapper.class.php +++ b/classes/modules/user/mapper/User.mapper.class.php @@ -283,20 +283,20 @@ class ModuleUser_MapperUser extends Mapper { public function GetCountUsers() { - $sql = "SELECT count(user_id) as count FROM ".Config::Get('db.table.user')." WHERE user_activate = 1"; + $sql = "SELECT count(*) as count FROM ".Config::Get('db.table.user')." WHERE user_activate = 1"; $result=$this->oDb->selectRow($sql); return $result['count']; } public function GetCountUsersActive($sDateActive) { - $sql = "SELECT count(user_id) as count FROM ".Config::Get('db.table.session')." WHERE session_date_last >= ? "; + $sql = "SELECT count(*) as count FROM ".Config::Get('db.table.session')." WHERE session_date_last >= ? "; $result=$this->oDb->selectRow($sql,$sDateActive); return $result['count']; } public function GetCountUsersSex() { - $sql = "SELECT user_profile_sex AS ARRAY_KEY, count(user_id) as count FROM ".Config::Get('db.table.user')." WHERE user_activate = 1 GROUP BY user_profile_sex "; + $sql = "SELECT user_profile_sex AS ARRAY_KEY, count(*) as count FROM ".Config::Get('db.table.user')." WHERE user_activate = 1 GROUP BY user_profile_sex "; $result=$this->oDb->select($sql); return $result; } @@ -308,7 +308,7 @@ class ModuleUser_MapperUser extends Mapper { c.country_name as name FROM ( SELECT - count(user_id) as count, + count(*) as count, country_id FROM ".Config::Get('db.table.country_user')." @@ -328,7 +328,7 @@ class ModuleUser_MapperUser extends Mapper { c.city_name as name FROM ( SELECT - count(user_id) as count, + count(*) as count, city_id FROM ".Config::Get('db.table.city_user')."