Задавайте вопросы, мы ответим
Вы не зашли.
Здравствуйте! Имеетеся сервер с "большой" нагрузкой, на котором стоит UBUNTU 10.04 (64) и MySQL 5.3. Есть база состоящая из таблиц на движке innodb. Каждая таблица имеет хотябы одну связь по внешнему ключу (с каскадным удалением). Скорость работы субд пока устраивает, но есть 1 ньюанс, в таблице с 1 млн. записями запрос типа "SELECT COUNT(*) FROM `table1`" выполняется порядка 5 минут! а В к таблице с 14 млн. больше 15 мин. (дальше надоело ждать). Подскажите с чем это связано и как можно решить эту проблему? Что если мне в дальнейшем понадобится в приложение узнавать общее количество записей?! Причиной этому могут быть внешние ключи? Зарание благодарен за Ваши советы!
Неактивен
Нет, не могут: в случае с COUNT(*) Вам нужно обойти весь главный ключ
и честно посчитать количество нод — это длительная операция.
Если Вас устроит приблизительное значение, Вы можете использовать
SHOW TABLE STATUS LIKE 'tablename'.
Если нужно точное значение — нужно делать денормализационную табличку,
в которой хранить уже нужное количество строк.
Неактивен
Спасибо за совет. Тема закрыта.
Неактивен