首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误的数据库查询设计指南

错误的数据库查询设计指南
EN

Stack Overflow用户
提问于 2011-01-16 06:50:38
回答 1查看 194关注 0票数 1

查询数据库的准则之一是在一个查询中尽最大努力,而不是拆分它,因为即使它会导致很少的连接,查询优化器也会优化它。

然后我注意到一个查询结果1行花费了1.5秒,我检查了为什么会这样。

查询如下所示

代码语言:javascript
复制
SELECT a.b FROM a, c WHERE a.d = c.e AND c.f = 'g'

虽然我知道c.f = 'g'匹配一行,但我认为正如指南所说,查询优化器会捕获它。但事实并非如此。

将其拆分为两个查询,第一个查询检索c.e,第二个查询检索a.b,将时间缩短到几毫秒。我有c.ea.d外键和,提到的除了a.b唯一索引的列,这两个表都有大约2mil的行,我使用MySQLInnoDB

是指南真的有问题,还是我理解错了?

EN

回答 1

Stack Overflow用户

发布于 2011-01-16 08:51:43

http://dev.mysql.com/tech-resources/articles/using-new-query-profiler.html还应考虑是否在a.d、c.e、c.f上提供索引

  • 使用查询探查器根据您的特定要求进一步细化查询:

还要记住,您还可以通过其他方式提高性能,如查询缓存、操作系统调优等:http://forge.mysql.com/wiki/Top10SQLPerformanceTips

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4702598

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档