Я должен избежать, СЧИТАЮТ все вместе в InnoDB?

Прямо сейчас я дебатирую, использовать ли COUNT(id) или столбцы "количества". Я слышал тот InnoDB COUNT является очень медленным без a WHERE пункт, потому что это должно заблокировать таблицу и сделать полное индексное сканирование. Это то же поведение при использовании a WHERE пункт?

Например, если у меня есть таблица с 1 миллионом записей. Выполнение a COUNT без a WHERE пункт потребует поиска 1 миллиона записей с помощью индекса. Будет запрос становиться значительно быстрее при добавлении a WHERE пункт сокращает число строк, которые соответствуют критериям от 1 миллиона до 500 000?

Рассмотрите страницу "Badges" на Так, был бы, включая столбец badges таблицу называют count и постепенное увеличение его каждый раз, когда пользователь заработал тот конкретный значок быть быстрее, чем выполнение a SELECT COUNT(id) FROM user_badges WHERE user_id = 111?

Используя MyIASM не опция, потому что мне нужны функции InnoDB для поддержания целостности данных.

5
задан Siqi Lin 24 July 2010 в 23:38
поделиться