![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
SQL优化相关
逆天killer
这个作者很懒,什么都没留下…
展开
-
mysql 优化 Using join buffer (Block Nested Loop)
说明:生产环境发现接口响应慢,经查是SQL执行慢,发现是表关联时候右表数据量大,循环嵌套查询速度很慢。如图刚开始SQL执行计划这是测试环境,生产环境fsp_cor_inf数据量很大,经过排查发现是Using join buffer (Block Nested Loop)导致的查询慢,开始解决,首先,在表关联的地方建立索引,然后执行发现没有效果。然后,发现两表字符集不一致,一个是uft8一个是uft8mb4,可能这个原因导致的索引失效。随后修改表字符集然后发现还是没效果,原来上面修改的是表的字原创 2022-07-27 17:15:41 · 1706 阅读 · 0 评论 -
mysql如何先排序后分组group by
**前言:**经常遇到需要对数据进行分组并取组内最新一条数据的需求,这边总结了3种方法。需求:查询业务流程明细表中每个业务流程最新明细信息实现:mysql 5.6可以这样:5.7以后对子查询排序做了优化,子查询全表排序失效,网上很多是在排序后面加limit的,这样感觉很不好,数据量大会丢数据,建议可以这样:方式一:方式二:...原创 2022-07-04 10:34:38 · 6368 阅读 · 8 评论 -
SQL创建几种常见索引
索引创建1、主键索引:alter table table_name add primary key (column)2、唯一索引:alter table table_name add unique (column)3、普通索引:alter table table_name add index index_name (column)4、全文索引:alter table table_name add fulltext (column)5、联合索引:alter table table_name原创 2022-02-22 09:49:03 · 5851 阅读 · 0 评论 -
MySQL索引失效的几种情况【不定期更新完善】
1. 最佳左前缀法则如果一张表的索引有多个,要遵守最佳左前缀法则,即查询从索引的最左前列开始并且不跳过索引中的列。2.like查询使用不当会导致索引失效通配符%在开头位置select * from tb_user where name like ‘’%xiaoai";这时候就会导致索引失效3.在索引列上做加工操作(一般指运算和函数)在索引列上做加工操作,查询时会导致索引失效,从而导致全表扫描。所以,建议不要在索引列上做任何操作。举个例子,例如订单表tb_order有个索引是dt(日期), 字原创 2022-02-22 09:46:23 · 1780 阅读 · 0 评论