Как на MySQL посчитать кол-во строк с некоторым параметром?

A
На сайте с 20.09.2009
Offline
64
2139

Посоветуйте как написать запрос на MySQL, который будет в таблице "basename" считать кол-во строк, где параметр "num" равен цифре 7. В таблице более 100 тыс. строк.

Я в принципе знаю, как это сделать, но мой запрос долго выполняется, что собственно нагружает сервер. А запросы такие идут постоянно и нужно сократить нагрузку и уменьшить время выполнения.

Бесплатный хостинг - 150 MB Disk Space, 4 GB Monthly Traffic, 1 Domain Hosting, MySQL(v.4/5), PHP4/5, Perl, CGI-BIN (http://a-online.org.ua) БЕСПЛАТНЫЙ ХОСТИНГ - безлим. трафик, 3 GB под сайт, PHP, MySQL, cPanel, FTP (http://www.free-web-host.me/?ref=27772)
Brand from Amber
На сайте с 18.08.2007
Offline
293
#1

SELECT count(*) as cntName FROM `baseName` WHERE num=7

Лучший способ понять что-то самому - объяснить это другому.
H
На сайте с 03.01.2011
Offline
5
#2

Попробуйте это:

SELECT COUNT(`id`) FROM `basename` WHERE `num` = '7'

А вообще можете сделать так:

Записать результат запроса в некий файл, а далее выводить с этого файла результат, а для вас сделать админ – страницу, где количество строк будет заново пересчитываться и записываться в этот файл.

webpavilion
На сайте с 10.10.2009
Offline
35
#3

на поле `num` стоит индекс?

B
На сайте с 19.08.2007
Offline
30
#4

Если выполняется долго, то во-первых, можно добавить индекс на это поле если его нет.

Во-вторых, если таблица изменяется не часто, включаем в настройках мускула query cache.

Ну и как вариант вынести количество строк в отдельную таблицу и пересчитывать при вставке\удалении строк из исходной таблицы.

Покупаю сайты для родителей, про детей и женской теме, действующие интернет-магазины.
A
На сайте с 20.09.2009
Offline
64
#5
webpavilion:
на поле `num` стоит индекс?

нет, индекса на нем нету

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий