Mysql Самый быстрый способ посчитать количество записей в таблице?

PHProgress

Новичок
По умолчанию у меня используется такая констркция для подчета
PHP:
SELECT count(id) as result_count FROM table WHERE ... ORDER ...
Проблема в том, что мне нужно постоянно актуальное значение кол-ва записей, и я не могу кэшировать данный запрос и результат...

Суть вопроса в следующем , в интернете нашел еще пару способов - но какой самый быстрый способ посчитать количество всех записей в БД с where и order

--
Иван.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
При чем тут Order? Where я еще могу понять.

Тип таблиц? Сколько данных? Хранить и поддерживать актуальность счетчика не пробовал? На сколько часто изменяются данные в таблице?
 

PHProgress

Новичок
При чем тут Order? Where я еще могу понять.

Тип таблиц? Сколько данных? Хранить и поддерживать актуальность счетчика не пробовал? На сколько часто изменяются данные в таблице?
Да за ордер спасибо - действительно он здесь не нужен...

Данные изменяются очень часто - поэтому и говорю что мне нужно постоянно актуально...
В среднем в разных таблицах от 2 000 до 100 000 записей...
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Ну напиши триггер, который будет поддерживать актуальным число записей в таблице и писать это дело в соседнюю таблицу. Можешь считать как ты написал, можешь через SQL_CALC_FOUND_ROWS. С таким количеством данных однохренственно.
 

Фанат

oncle terrible
Команда форума
Самы быстрый - иметь индекс на те поля, которые используются во WHERE
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
PHProgress
Тебе Фанат уже написал, что делать стоит, а где мерить производительность не имеет смысла особого.

Как вариант - делаешь запрос с SQL_NO_CACHE и смотришь, сколько занял тот или другой.
 
Сверху