MySQL优化

1.查看SQL执行频率:
        mysql客户端连接成功后,可通过 show[session | global] status 命令查看服务器状态信息。show [session | global] status可以根据需要加上参数“session”或者“global”来显示当前连接session级的计结果和global级(从上次数据库启动到现在)的统计结果。如果不写,默认使用参数显Sessionr.

连接mysql

 mysql> use dome_02; ----使用表

2.显示当前session中所有统计参数的值:(即是统计查看增删改查等操作次数)

show status like 'Com_______'

 命令中有7个下划线(_);

3.查看全局的(自数据库上次启动至今)的统计结果:

show global status like 'Com_______'

4.对于Innodb数据库引擎的执行命令:(操作中影响行插入 / 读 的统计)

show global status like 'Innodb_rows_%'

以上操作用于定位数据库以什么操作为主!

5.定位执行效率低的SQL:

        1)慢查询日志:查看执行的日志文件,定位出执行时间长的低效SQL语句;

        2)explain分析执行计划:在任何SQL语句前加上explain

explain select * from tb_item where id = 1;

 6.show profile分析SQL(5.0版本): show profile / show profiles
        show profiles能够在做SQL优化时帮助我们了解时间都消耗到哪了?
        通过have_profiling 参数,能够看到当前mysql是否支持profile;

 默认profiling是关闭的,可以通过set语句在Session级别开启profiling;

mysql> set profiling=1;

可以执行类似以下命令后,再执行 show profiles,来查看SQL语句执行的耗时。

 7.trace分析优化器执行计划:在mysql体系结构的优化器(Optimizer),而trace就是用来分析优化器的执行计划。

        用法:打开trace,设置格式为JSON,并设置trace最大能够使用的内存大小,避免解析过程中因为默认内存过小而不能完全展示。

SET optimizer_trace="enabled=on",end_markers_in_json=on;   -- 开启
SET optimizer_trace_max_mem_size = 1000000;      -- 设置
-- 执行SQL语句:
select * from tb_item where id < 5;
-- 最后,检查information_schema.optimizer_trace就可以知道mysql是怎么执行SQL的。
select * from information_schema.optimizer_trace\G;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值