MySQL插入/更新/删除/选择有时会变慢

时间:2018-01-03 06:09:50

标签: php mysql database-performance

当我使用 InnoDB 作为数据库引擎时,查询会变慢,有时需要20秒或更长时间。

我知道可以通过 my.conf 完成的解决方案将 innodb_flush_log_at_trx_commit的值更改为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 记录

还有其他解决方案可以加快查询性能。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

使用配置文件检查每个步骤的成本时间;

  1. set profiling=1;
  2. 运行查询;
  3. 检查查询:show profiles;
  4. 列出时间费用:show profile block io,cpu for query N;
  5. 找到具有高Duration

    的步骤

    它显示如下 profiles list

    可能的问题:索引,排序依据,文件排序,使用临时表..