SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 01.06.2011 12:39:21

rembrant
Участник
Зарегистрирован: 01.06.2011
Сообщений: 3

количество строк в большой таблице

Здравствуйте. В PHP скрипте возникает необходимость найти количество строк в большой таблице (несколько сотен тысяч записей). Делаю следующим образом:

        // Получаем количество элементов;
        public function GetCount($query=false)
         {
             if ( $query == false )
              {
                 $query = $this->query_res;
              }
             else
              {
                 $query = $this->Query($query);
              };
             return @mysql_num_rows($query);
         }

........................................................
         $qf = "SELECT `uid` FROM `users` WHERE `uid`>0";
         $total=$db->GetCount($qf);


хотелось бы знать мнение знатоков, можно ли придумать что-то более оптимальное с точки зрения пожирания ресурсов, чем это? например select count(*)?

Неактивен

 

#2 01.06.2011 12:54:43

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: количество строк в большой таблице

Если вам нужно просто число uid'ов больше нуля, то сделайте

SELECT count(*) AS c  FROM `users` WHERE `uid`>0;


Если uid не является primary key, то индекс на поле `uid` тоже лишним не будет.

Отредактированно deadka (01.06.2011 13:07:37)


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#3 01.06.2011 13:12:23

rembrant
Участник
Зарегистрирован: 01.06.2011
Сообщений: 3

Re: количество строк в большой таблице

uid является primary key.
спасибо большое, только что означает "AS c"?

Неактивен

 

#4 01.06.2011 13:15:45

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: количество строк в большой таблице

rembrant написал:

uid является primary key.

Тогда не нужно больше индексов smile.

rembrant написал:

спасибо большое, только что означает "AS c"?

Это просто алис (переобозначение) - чтобы Вы могли при использовании mysql_fetch_assoc обратиться по ключу 'c' к нужной колонке.

Отредактированно deadka (01.06.2011 13:16:06)


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#5 01.06.2011 13:34:56

rembrant
Участник
Зарегистрирован: 01.06.2011
Сообщений: 3

Re: количество строк в большой таблице

спасибо, разобрался smile

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson