Как я использую InnoDB как движок базы данных, запрос выполняется медленнее, иногда это занимает 20 секунд или чаще.
Я знаю решение, это может быть сделано через my.conf изменить значение innodb_flush_log_at_trx_commit to 2 это может решить мою проблему, я тоже хочу это сделать, но так как у меня общий хостинг, они не позволяют мне это делать.
Версия MySQL: 5.6.32-78.1
Я тоже пробовал с MySQL запросом
mysql> SHOW VARIABLES LIKE 'innodb_flush_log_at_trx_commit';
+--------------------------------+-------+
| Variable_name | Value |
+--------------------------------+-------+
| innodb_flush_log_at_trx_commit | 1 |
+--------------------------------+-------+
1 row in set
И я попробовал этот запрос
mysql> SET GLOBAL innodb_flush_log_at_trx_commit=2;
но это также не позволяет мне, потому что у меня нет супер привилегий для выполнения этого действия.
У меня есть база данных с 25 столов, И в 4 стола имеются 4000+ записи и в остальных таблицах, есть ниже 100 учет
Так есть ли другое решение для ускорения производительности запросов? Любая помощь будет оценена.
Используйте профиль, чтобы проверить стоимость времени на каждом этапе;
set profiling=1;
show profiles;
show profile block io,cpu for query N;
Найдите шаг, который имеет высокую Duration
Возможные проблемы: индекс, сортировка по, сортировка файлов, использование временной таблицы.
Других решений пока нет …