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

问题描述 投票:-1回答:1

由于我使用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个以下的记录

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

php mysql database-performance
1个回答
2
投票

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

  1. set profiling=1;
  2. 运行查询;
  3. 检查查询:show profiles;
  4. 列出时间成本:show profile block io,cpu for query N;

找到具有高Duration的步骤

它显示像这样profiles list

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

© www.soinside.com 2019 - 2024. All rights reserved.