MySQL之SQL优化篇(一):概述

MySQL之SQL优化篇(一):概述

为什么要写该系列

  作为一名Java后端开发程序员,每天少不了与MySQL打交道。在谈及SQL优化时,如果是对于SQL优化经验不是很足的程序员,第一时间想到的便是索引,如何让SQL走索引似乎成为了我们最关注的点。在网上可以搜到不计其数的关于如何走索引的方法,很多时候我们只是简单地按照别人给的经验法则照搬,但无法保证搬下来的东西一定能奏效。也许有人会说,我比较一下时间,变快了不就优化成功了吗。这也没错,可是通常来说,想要实现同样效果的查询,有很多种SQL编写方式,我们没法在最快的时间内找到那个最佳的方式,也没法确定该方式是最佳的,会不会存在隐患,心里会有一种希望别出事的担心。
  我列举了一些常用的经验法则,以及一些我自己的疑问(也可能是你的疑问):

经验法则疑问
别用select *,写全需要的字段,除非全都要为什么呢,效果都一样的啊
like 'abc%'可以走索引like '%cde’为什么不行,想走索引怎么办
用join查询代替子查询子查询有没有比join快的时候呢
用小表去join大表小表和大表顺序换了还是一样的效果,为什么不按我写的顺序执行呢
多用limit数据量少肯定快,但limit 10000, 10的时候为啥会变慢呢
避免在where子句中对字段进行表达式操作为什么不走索引呢

  为了解决众多的疑问,消除心中的疑虑,设计出合理的表结构、索引,编写出高效的SQL,提高自己在MySQL使用上的维度,特编写该系列文章,希望在提高自身的同时,帮助到需要的朋友。本系列文章参考自《高性能MySQL第3版》,为个人结合书籍内容和自身的理解所作的总结(笔记)。

本系列文章索引(更新中)

MySQL之SQL优化篇(一):概述

  概述部分简单说明了编写此系列的初衷。

MySQL之SQL优化篇(二):SQL性能分析与诊断

  在优化之前,学会分析SQL性能十分重要,只有知道影响性能点,才能针对性地去进行优化。

MySQL之SQL优化篇(三):浅谈MySQL存储引擎

  简单谈及在SQL优化过程中涉及存储引擎的内容。

MySQL之SQL优化篇(四):schema及数据类型优化

  高效的SQL背后离不开合理的数据库设计。

MySQL之SQL优化篇(五):索引查询优化

  索引类似于一本书的目录,在数据到达一定量时,创建合理的索引并使用索引能有效提高查询的效率。

MySQL之SQL优化篇(六):其他查询优化

  在了解了索引之后,已经能对有关索引的查询做出优化,本节将探讨索引之外的SQL优化,例如关联查询、分页、排序等。

MySQL之SQL优化篇(七):分区优化

  当一张表的行数到达几百上千万行或以上时,就算有索引加持,查询效率也可能不符合预期,此时对表进行分区能提高查询效率。

MySQL之SQL优化篇(八):浅谈分库分表,读写分离

  在数据量过于庞大,普通的优化已经不能满足要求的情况下,通过分库分表,读写分离的方案能有效提高查询效率。

MySQL之SQL优化篇(九):浅谈MySQL配置文件

  大多数情况下MySQL的默认配置是安全的,但是在生产环境中,合理配置MySQL的各项参数能有效提高MySQL的性能。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值