前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >执行计划与如何找出需要优化的sql语句

执行计划与如何找出需要优化的sql语句

原创
作者头像
风起--追风
修改2023-02-05 12:15:14
5620
修改2023-02-05 12:15:14
举报
文章被收录于专栏:sql与spec性能sql与spec性能

1.sql语句的执行计划,可以通过explain查看,有三种格式,traditional、json和tree;

默认是传统格式,可以通过explain format=tree/json +sql来选择其他格式

explain format=tree select count(*) from customer inner join payment using(customer_id) where store_id = 1\G;

2.执行计划是由优化器进行选择的,通过设置优化器跟踪可以了解选择执行路径的原因

使用优化器跟踪分为四步,

  • 打开优化器跟踪功能:set optimizer_trace = "enabled=on"
  • 执行需要跟踪的sql语句
  • 查询视图information_schema.optimizer_trace
  • 关闭优化器跟踪功能,set optimizer_trace = "enabled=off"
3.找出需要优化的sql

通常可以通过workbench,mysql enterprise monitor等数据库工具找出消耗资源最多的sql语句,当然也可以sys视图来找出需要优化的sql;

最需要优化的sql并不是指的单次执行时间最长的sql语句,而应该是总计执行时间最长的sql语句,它等于执行次数乘以单次执行时间。

sys数据库视图是建立在performance_schema数据库上的,在sys.statement_analysis中找出总计执行时间最长的sql,同样也可以在performance_schema.events_statements_summary_by_digest查找

  • 如果要清空以前的sql语句并重新进行统计,执行如下存储过程:

call sys.ps_truncate_all_tables(false);

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档