Недавно я обновил свой сервер MySQL с 5.1 до 5.6 (работает на CentOS 6.x). С тех пор, как я обновился, когда я пытаюсь выполнить определенные табличные задачи, запросы занимают ОЧЕНЬ много времени. Это действительно тормозит итерации моего цикла разработки, потому что когда тест должен выполняться 1 секунду, он выполняется 1-2 минуты, и это действительно убивает мою производительность.
Запросы, которые занимают очень много времени:
- БРОСАЙТЕ и СОЗДАВАЙТЕ
- ВСТАВЛЯЕТ после этого СОЗДАТЬ
- УСЕЧЕНИЕ
У меня установлена та же версия MySQL (5.6.15) на моем локальном Mac. Я работаю конкретно над 6 таблицами в данный момент и поэтому хочу часто усекать эти таблицы. Когда я усекаю их на моем локальном Mac, запрос занимает 21 мс (вполне разумно). Когда я усекаю те же таблицы на моем сервере CentOS, это занимает 8,5 СЕКУНД. Все таблицы InnoDB.
Я пробовал с другими таблицами в той же базе данных на моем локальном Mac против моего сервера CentOS, и экстремальная медлительность сохраняется для этих других таблиц. Поэтому я попробовал другую базу данных, и экстремальная медлительность также сохраняется (восстановление одной из моих баз данных на моем локальном Mac занимает 25 секунд, но на сервере CentOS это занимает 4 минуты и 14 секунд).
Поскольку версия MySQL та же самая, я подумал, что, возможно, это разница в конфигурации. Я экспортировал запрос "show variables;" на CentOS и локальный Mac, и единственные различия (кроме таких вещей, как пути или имена файлов журнала) таковы:
innodb_use_native_aio OFF // local Mac
innodb_use_native_aio ON // CentOS
lower_case_file_system ON // local Mac
lower_case_file_system OFF // CentOS
lower_case_table_names 2 // local Mac
lower_case_table_names 0 // CentOS
have_symlink YES // local Mac
have_symlink DISABLED // CentOS