Подсчёт строк.

FESt

Guest
Подсчёт строк.

Здравствуйте.
Фрагмент кода, который считает строки по заданному параметру:
...
mysql_select_db("db", $link);
.....
<a href="zuhe.php?mark=A100">A100
<?$result = mysql_query("SELECT count(id) FROM av where mar='A1'", $link); $row = mysql_result($result, 'id'); echo "($row)"; ?>
...
...
<a href="zuhe.php?mark=A100">A100
<?$result = mysql_query("SELECT count(id) FROM av where mar='A1'", $link); $row = mysql_result($result, 'id'); echo "($row)"; ?>
....
результат:

A1 (1000)
...
...
A100 (2000)

Если строк 100 000-500 000 - то скорость выполнения нормальная.
если 4 000 000 то в такое построение запроса не приемлемо(очень долго).
Можно ли это каким-нибудь другим методом сделать?
ВСЁ ИНДЕКСИРОВАНО.
 

FESt

Guest
Ошибся :
mysql_select_db("db", $link);
.....
<a href="zuhe.php?mark=A1">A1
<?$result = mysql_query("SELECT count(id) FROM av where mar='A1'", $link); $row = mysql_result($result, 'id'); echo "($row)"; ?>
...
...
<a href="zuhe.php?mark=A100">A100
<?$result = mysql_query("SELECT count(id) FROM av where mar='A100'", $link); $row = mysql_result($result, 'id'); echo "($row)"; ?>
Вот так правильно.

Это огромная таблица(более 4млн) , по которой осуществляется много видов поиска(в т.ч. связанных с другими таблицами), и по полю mar - тоже. Скорость менее секунды. Но когда за один раз более ста запросов начинает иногда даже зависать.
MySQL version 4.0.18
 

TuBu

Guest
может в данном случае будет лучше осуществлять такой запрос:

[sql]
SELECT count(id), mar FROM av where mar in ('A1', 'A100', ...) group by mar
[/sql]

Большой базы под рукой не было, но на таблице с 500К записями отрабатывало быстро
 

FESt

Guest
Этот запрос красивее, но начал их сравнивать и оказалось, что посчёт даже одного параметра, любым из этих запросов занимает ~ 20сек. И что самое интересное - индексированное ли поле mar или нет, но но на скорость выполнения запроса, это почти не влияет. Видимо количество переходит в качество.
 
Сверху