mysql查询优化方案

1.使用分页
最好的优化莫过于分页查询,使用 LIMIT page,size,这是提升查询速度最快的方法,面对百万级的数据谁也不能一次性显示完(数据统计、计算除外),所以这是最佳选择。
2.数据库表设计
表设计合理也会极大的增加查询效率
(1). 如果此表的作用是日志记录,都是insert和select并无其他操作,表引擎建成myisam为最合适的选择。如果修改编辑操作多则不建议使用。
(2).对主键没有特殊的要求和条件,应该设置主键为数字并且自增也会提升查询效率。
(3).对查询条件加上索引,但是对于字段值过长或者否定性不是很强的不用加上索引,。
(4).对于固定的数据类型的长度用最合适的长度。
(5).避免使用视图,会增大对数据库维护成本
(6).避免使用存储过程,会增大对数据库的维护成本,并且存储过程计算处理数据会影响数据库性难

2.查询优化,使用执行计划分析

MySQL提供explain/desc命令输出执行计划,我们通过执行计划优化SQL语句。

(1).应尽量避免在 where 子句中使用 or 来连接条件,否则将导致引擎放弃使用索引而进行全表扫描
(2).减少使用模糊查询,如要使用,请尽量使用半模糊。
在这里插入图片描述
在这里插入图片描述
明显的看到全模糊会慢于半模糊,因为全模糊会放弃使用索引
在这里插入图片描述在这里插入图片描述
(3)这里可以看见我查总数的时候用到的count(*),***现在有很多争论的就是count(1)和count(✳),其实两者并无明显差异,当where条件无索引的时候,count(1)快些,有索引的情况下是一样的。
(4)使用exists代替in查询(适用于A表数据量小于B表数据量)
在这里插入图片描述
(5)少用子查询,尽量能用关联查询就使用关联查询

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

放学不要跑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值