Хорошо, поэтому у меня есть локальный сервер Ubuntu в моем доме под управлением Mysql. У этого есть старые жесткие диски стиля, и у меня есть Linode, управляющий SSD.
На Linode простая таблица SELECT COUNT(*) FROM table
насчитывающая 106938412 записей, занимает 37,14 секунды, в то время как на моей домашней коробке подсчет 5376224 записей занимает 39 минут! Очевидно, что-то другое. Где я должен стремиться ускорить это. Если бы я переместил данные не SSD локально на USB-накопитель, это ускорит его? В настоящее время я выполняю запросы по обеим таблицам (много выборок/вставок), поэтому таблицы будут "активными", и оба набора запросов будут также обновлять индексы, поэтому я не уверен, что это будет учитывать различия?
Когда я запускаю EXPLAIN SELECT COUNT(*) FROM slow_table
показывает Select tables optimized away
поэтому я не верю, что это помогает?
ОЗУ и процессор в локальном поле также прекрасны.
В вашем запросе вместо использования *
используйте любое конкретное имя столбца, в основном столбцы первичного ключа.
Попробуйте этот запрос:
SELECT COUNT(column_name) FROM table_name;