MYSQL优化

索引使用B+tree

innbd使用聚簇索引,只有主键使用,数据与索引在一起

其他索引为辅助索引,非聚合索引,索引存放的是主键索引

使用explan 判断索引是否失效

索引原则:

1,最左前缀

2,组合索引,查询右边的索引,不生效,如需要单独生成索引

3,索引进行函数运算失效

4,字符串不加单引号,索引失效

5,使用or时,如有一列没有索引,所有索引失效

6,以%开头的like模糊查询,索引失效

7,如mysql评估使用索引比全表慢,索引失效,数据较少时,使用索引

8,is null, is not null 有时索引失效,数据少时,使用索引,数据多时索引失效

9,in , not in 有时索引失效,数据少时,使用索引

索引使用原则:

1,针对查询频次高,且数据量大的表简历索引

2,索引字段的选择,最佳应当从where子句中提取,如果where子句中的组合笔记多,挑选最常用,过滤效果最好的组合

3,使用唯一索引,区分度越高,索引效率越高

4,索引不是越多越好,索引多会导致更新删除等dml操作变慢

5,使用短索引,索引创建后也需要使用硬盘存储,如果构成索引字段比较短,那么在给定空间可以存储更多索引值信息

6,利用最左前缀,n个列组合索引,相当于创建了n个索引,如果where子句中使用了组成该索引的前几个字段,那么这个查询可以利用组合索引提升查询效率

常用sql优化:

order by 优化:

        explain extra排序类型:filesort, index

        index: 索引排序,索引覆盖时

        filesort:额外文件排序,额外排序时使用的是缓存区,修改sort_buffer_size 缓存区大小,可以加快查询速度,show variables like '%sort_buffer_size %', 显示缓存区配置

group by优化:

        如使用explain 查询发现,extra内包含 using file sort ,在group by 后追加 order by null,禁用分组排序

limit 优化:

        用id作为主键排序,分页查询,后拿id记录去回查表

count 优化:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值