起因
上周做完实习公司项目的新功能后,交给头儿进行code review。其中在使用yii框架的orm进行数据库查询时,头儿提到了存在索引时sql查询顺序的问题,他说可以通过调整orm查询语句where()中条件的顺序来进行查询的优化。出于好奇,我就去重新学习了mysql的索引与查询。
文章推荐
-
http://blog.codinglabs.org/articles/theory-of-mysql-index.html
跪着读完的文章,从索引的本质到硬件原理再到索引实现最后再到索引使用与优化,是非常厉害的腾讯大佬了。另外他的一篇关于比特币的文章也解答了我对比特币方面的不少疑惑。链接地址:http://blog.codinglabs.org/articles/bitcoin-mechanism-make-easy.html -
https://tech.meituan.com/mysql-index.html
由美团的技术团队发布的一篇文章,是根据开发过程中遇到的一个sql问题所引发的一系列思考。 -
https://segmentfault.com/a/1190000003072424
介绍了不少sql的索引类型与一些基础知识的总结。
总结
后来经过实践发现在使用=和in时,mysql自己会优化查询语句,所以一般来说用户不用刻意去优化。但由于存在最左前缀匹配原则,反倒是建立索引需要格外的注意。
网友评论