【发布时间】:2010-03-04 08:31:47
【问题描述】:
问候朋友,
在我的 MySQL 数据库中,我有一个“MAB”表,其中包含有关基因 ID (GI_ID) 的信息以及一些其他基因相关信息。
“MAB_CAN”表可以包含仅与癌症相关的基因 ID (GI_ID)。
我使用以下 SQL 查询从 MAB 表中获取癌症相关信息:
SELECT * FROM MAB WHERE `GI_ID` IN (SELECT `GI ID` FROM `MAB_CAN`)
这个查询大约需要 14 秒,太长了。(1605 条记录)。
但是下面的独立查询需要很短的时间。
选择
GI_IDFROMMAB_CANWHERE 1
- 0.0005 秒(1,605 条记录)
选择 * 从
MABWHERE 1
- 0.0007 秒(31,043 条记录)
优化我的第一个查询的任何提示?
【问题讨论】:
-
使用 EXPLAIN 查看数据库如何执行查询。现在您可以优化查询和索引。
标签: sql mysql query-optimization