优化之慢查询

优化之慢查询

概念

查询超过指定的时间的语句叫慢查询

查询

查看慢查询的指定的时间
show variables like “%long%”;
show status like “connections”;

查询当前mysql数据库是否开启慢查询日志功能;
show varlables like ‘%slow%’

配置

5.5版本配置

1.配置慢查询日志存放路径
在磁盘随意位置创建文件夹MysqlLog,并在文件夹内创建

2更改Mysql/slow.log读写方式
文件夹右键-属性-安全-编辑-添加-高级-立即查找-Everyone-编辑-安全控制-确定
3.在my.ini文件中配置
log_slow_queries=ON 开启慢查询
long_query_time=2 设置规定的超时时间
slow_query_log=ON 开启慢查询的日志
log_queries_not_using_indexes=ON 如果没有用到索引查询,则记录到日志
slow_query_log_file=“D:/MysqlLog/slow.log” 日志文件所在的磁盘路径

5.7版本配置

slow_query_log的值是ON,代表当前数据库已经开启了慢查询功能;
slow_query_log_file表示慢日志的路径或使用show variables like 'slow_query_log_file’命令也可以查看慢查询日志的路径
还可以查询超时多少秒算是慢查询:
show variables like ‘long_query_time’;
设置慢查询时间
set global long_query_time=4;
设置之后再次查询使用
show global variables like ‘long_query_time’;
查询有多少条慢查询
show global status like ‘%Slow_queries%’;

查看慢查询日志的存储方式
show variables like ‘%log_output%’;
设置
set global log_output=‘TABLE’;

该系统变量指定未使用索引的查询也被记录到慢查询日志中(可选项)。

如果调优的话,建议开启这个选项。

另外,开启了这个参数,其实使用full index scan的SQL也会被记录到慢查询日志。

mysql> show variables like ‘log_queries_not_using_indexes’;
±------------------------------±------+
| Variable_name | Value |
±------------------------------±------+
| log_queries_not_using_indexes | OFF |
±------------------------------±------+
1 row in set (0.00 sec)
设置
mysql> set global log_queries_not_using_indexes=1;
Query OK, 0 rows affected (0.00 sec)

mysql> show variables like ‘log_queries_not_using_indexes’;
±------------------------------±------+
| Variable_name | Value |
±------------------------------±------+
| log_queries_not_using_indexes | ON |
±------------------------------±------+
1 row in set (0.00 sec)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于MySQL慢查询优化,有几个常见的方法和技巧可以尝试: 1. 确定慢查询:首先使用MySQL的慢查询日志或性能分析工具(如Percona Toolkit)来确定哪些查询较慢。这样可以帮助你了解具体的问题。 2. 优化查询语句:检查慢查询中的SQL语句并进行优化。你可以考虑添加适当的索引以提高查询性能,或者重写复杂的查询语句以简化其逻辑。 3. 优化数据库结构:检查数据库表的设计和结构,确保表中的字段类型、索引和约束等设置是合理的。合理的数据库设计可以提高查询性能。 4. 避免全表扫描:尽量避免在大表上执行全表扫描操作,可以通过添加索引或者改进查询条件来避免全表扫描。 5. 调整系统配置参数:根据数据库负载和硬件性能,调整MySQL的配置参数,如缓冲区大小、连接池大小等,以提高系统性能。 6. 使用缓存:考虑使用缓存技术(如Redis)来缓存常用的查询结果,减轻数据库的压力。 7. 分离读写操作:将读操作和写操作分离到不同的数据库实例或服务器上,可以提高数据库的并发性能。 8. 使用慢查询日志或监控工具:定期分析慢查询日志,或者使用监控工具(如Prometheus和Grafana)来实时监测数据库性能,并及时调整和优化。 这些是一些常见的MySQL慢查询优化方法,具体的优化策略需要根据具体情况进行调整和实施。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值