【发布时间】:2018-04-11 17:56:42
【问题描述】:
我有一个 MySQL 表 T,并且列 c1 上有一个索引。我的join查询如下。
select something from T as t1 inner join T as t2 on ABS(t1.c1-t2.c1)<2;
我用explain来查看MySQL是否使用索引。它没有对上述查询使用索引。但它确实为以下查询使用了索引。
select something from T as t1 inner join T as t2 on t1.c1=t2.c1;
那么如何让 MySQL 在第一次查询时使用索引呢?
提前致谢。
【问题讨论】:
-
c1列是什么数据类型?
-
@lke c1 是一个浮点数。
-
请向我们展示 (1) 带有 ike 建议修订的真实查询,(2)
EXPLAIN SELECT ...,(3)SHOW CREATE TABLE。在这些输出之一中可能会出现一些微妙的东西。
标签: mysql join indexing query-optimization