У меня есть стол с ок. 70000 записей. Он содержит информацию о брендах, моделях и категориях товаров. Пользователь может запросить их, используя любую их комбинацию, и отображаемый счетчик товаров, соответствующих критериям, должен быть обновлен в соответствии с его выбором.COUNT (*) против ручного отслеживания счетчиков?
У меня это было сделано с помощью запроса как
SELECT model,COUNT(*) AS count FROM table$model_where
GROUP BY model
ORDER BY count DESC
где $model_where
зависит от того, что были другие условия. Но мой босс попросил меня повторить эти запросы в с помощью специального счетчика таблицы, потому что он считает, что они тормозят весь процесс вниз, но эталон я помещал предлагает иначе, пример вывод:
The code took: 0 wallclock secs (0.02 usr + 0.00 sys = 0.02 CPU)
и измеряет вся процедура с самого начала и до тех пор, пока данные не будут отправлены пользователю, вы можете увидеть, что это действительно быстро.
Я провел некоторое исследование по этому вопросу, но я до сих пор не видел окончательного ответа о том, когда следует использовать COUNT(*)
против встречных таблиц. Кто прав? Я не убежден, что нам действительно нужно ручное отслеживание этого, но, может быть, я просто мало знаю.
Будет ли ваша таблица будет в 10 раз больше в будущем? 1000x? Это повлияет на время, которое вы измеряете? – nos
Вряд ли. Он уже заполнен производственными данными. Он может расти в будущем, но не так много. – ZzZombo
Найдите подходящий мультфильм Дилберта и положите его на стол, когда он не смотрит. –