【发布时间】:2018-04-05 08:30:28
【问题描述】:
目前,我的查询需要 8 秒才能完成。
查询是:
SELECT CI FROM MyTable WHERE CI = 9787988;
和索引也可用:
CREATE INDEX nidx_MyTable_CI ON MyTable(CI) USING BTREE;
NDB MyTable 有 620 万条记录。 CI 不是主键并且具有空值。 MyTable 有 12 列,具有 VARCHAR/INT/DATE 数据类型。 ANALYZE TABLE 执行没有任何问题。 FORCE INDEX 也返回全表扫描,需要 8 秒才能完成。
如何优化查询以更快地执行?
【问题讨论】:
-
CI列的基数是多少?如果基数非常低,那么使用索引实际上可能会受到伤害,这可以解释您的输出。 -
CI 列或多或少具有独特的价值。因此,基数等于记录数。