SQL编写规范及性能排查一些方法

SQL 语句编写规范

  1. 避免使用select *,对于宽表来说,这是灾难;
  2. 严禁不加任何where条件读取数据;
  3. MySQL中的text类型字段独立存储,数据量少的表除外:
  4. Where条件中的过滤条件字段上严禁使用任何函数,包括数据类型转换函数;
  5. 分页查询语句全部都需要带有排序条件 , 否则很容易引起乱序;
  6. 用in()/union替换or;
  7. 严禁使用%前缀进行模糊前缀查询;
  8. 避免使用子查询,可以把子查询优化为join操作;
  9. 分页查询,当limit起点较高时,可先用过滤条件进行过滤;

MySQL 语句性能排查方法

1、.排查sql排序数最多语句
select schema_name,digest_text,count_star,sum_rows_sent,sum_sort_rows,first_seen,last_seen 
from performance_schema.events_statements_summary_by_digest 
where
schema_name is not null and schema_name!='information_schema' order by sum_sort_rows desc limit 10;
2、排查IO消耗最多的文件或表
select file_name,event_name,count_read,sum_number_of_bytes_read,count_write,sum_number_of_bytes_write 
from performance_schema.file_summary_by_instance 
order by sum_number_of_bytes_read+sum_number_of_bytes_write desc limit 10;

3、索引使用排行
select object_name, index_name, count_fetch, count_insert, count_update, count_delete 
from performance_schema.table_io_waits_summary_by_index_usage order by sum_timer_wait desc limit 1;
4、排查IO等待事件消耗最多
SELECT event_name, count_star, sum_timer_wait, avg_timer_wait 
FROM performance_schema.events_waits_summary_global_by_event_name 
WHERE event_name!='idle' ORDER BY sum_timer_wait DESC LIMIT 10;
5、排查临时表使用最多
SELECT schema_name,digest_text,sum_created_tmp_disk_tables,sum_created_tmp_tables,first_seen,last_seen 
FROM performance_schema.events_statements_summary_by_digest 
WHERE schema_name IS NOT NULL AND schema_name!='information_schema' 
ORDER BY sum_created_tmp_disk_tables DESC LIMIT 10;
6、排查返回的结果集最多
SELECT schema_name,digest_text,count_star,sum_rows_sent,sum_rows_sent,first_seen,last_seen 
FROM performance_schema.events_statements_summary_by_digest 
WHERE schema_name IS NOT NULL AND schema_name!='information_schema' 
ORDER BY sum_rows_sent DESC LIMIT 10;
7、排查响应最长SQL
schema_name,digest_text,count_star,avg_timer_wait,sum_rows_sent,sum_rows_examined,first_seen,last_seen 
from performance_schema.events_statements_summary_by_digest 
where schema_name is not null and schema_name!='information_schema'
order by avg_timer_wait desc limit 10;

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值