在工作中,我们经常使用基本的SQL语句,但是大部分用户只会简单的增、删、改、查,进一步可能就是创建索引,当索引没有起到作用时,基本再无招架之力。
针对MySQL的面试,90%以上都会问以下问题:
1)SQL语句是如何执行的?
2)索引的检索原理是什么,如何创建高效的索引?
3)如何提高索引的使用?
4)如何做到索引覆盖,如何避免回表查询,如何使用索引条件下推?
5)回滚日志、重做日志、二进制日志的作用是什么?
6)如何利用复合索引和前缀索引提高SQL性能?
7)事务的隔离是如何实现的?
8)InnoDB如何解决幻读和不可重复读问题?
9)表锁、行锁、排他锁、意向锁、间隙锁、记录锁、临键锁在MySQL中如何实现,它们解决了什么问题?
10)SQL服务慢,该如何排查?
11)除了索引外,如何根据自己的服务器设备来进行软硬件优化?
除了以上问题外,还有很多未列出的问题。为了解决这些问题,才有了本书。作者不只是简单地通过理论知识来讲述这些问题,还列举了大量的示例,比如每一种锁是如何使用的,如何通过代码来操作,旨在以示例和理论相结合的方式进行系统的讲述。对于想提升自己业务能力的读者来说,本书不仅提供了索引的优化,而且根据作者多年的DBA经验列举了大量的经典案例。本书可能不是很全面,但包含业务中80%以上的应用场景,对于没有深入研究过任何一种关系型数据库的读者来说,本书可能会为你开启学习数据库的大门。通过阅读本书,读者不仅能快速高效地解决业务问题,还能站在数据库管理员的角度来优化自己的数据库。此外,本书还提供了与MySQL内部工作原理相关的内容,读者越是了解MySQL的工作原理,就越能合理地解决工程中遇到的问题。
本书的资源文件可以登录机械工业出版社华章公司的网站(www.hzbook.com)下载,方法是:搜索到本书,然后在页面上的“资源下载”模块下载即可。如果下载有问题,请发送电子邮件至booksaga@126.com,邮件主题为“MySQL应用实战与性能调优”。如果读者有兴趣,也可以加入QQ技术交流群(823440562)参与讨论。
最后,感谢各位读者选择了本书,希望读者有所收获,并且在使用MySQL的业务场景中学习到更多实践技巧。虽然作者对书中的内容尽量一一核实,但因水平所限,难免存在疏漏之处,敬请广大读者批评指正。作者会不断地完善此书,以此来回报读者对本书的支持。
张文亮
2021年10月