MySQL查询两次和双表联查哪个效率高?
MySQL查询两次和双表联查哪个效率高?
今天在QQ群里面有一网友问到“MySQL查询两次和联表查询哪个效率高”,当时对这种菜鸟级问题很不屑,因为自己曾经在MySQL数据库学习上花了一些时间,所以很清楚的知道,MySQL查询两次肯定就有两次I/O调用过程,而查询一次也就只有一次调用过程。这就很清楚的看出哪个效率高,但我没有回答该网友的问题,我跟他说你百度一下咯,网上肯定要相关的问题。
但是下班之后一回想,这问题好像不是看起来那么简单,因为之前看韩顺平老师的视频的时候,他说到过MySQL真的效率还在于SQL语句,而联表查询可以减少I/O请求,但如果数据库表设计得不合理,SQL语句写得不好,会造成数据库大量的内部IO操作,特别是大量没必要的全表扫描。而这势必程序影响运行效率。相反,在单表查询两次的时候,只要SQL语句没大问题,就算进行两次I/O调用,也不会影响查询效率。
之后我还就这个问题去百度搜索了一下,得到了一个被网友采纳了的跟我的上面写的很相似的答案,如下截图。
在这里写这篇文章只是提醒一下自己以及自认为是老鸟的程序员们,有时候不要太看表面的东西,一般情况下一个解决问题可以用多种方法,至于用哪种就要看项目需求以及自身的技术水平,也许在某一次的面试中,考官提到了这个问题,如果你不加思索的按常规思维去回答肯定是不行的,只有经过全面的分析解答才会令人满意得。