目前,我的查询需要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秒才能完成。
如何优化查询以更快地执行?
答案 0 :(得分:0)
如果CI
的数据类型为VARCHAR
,则引用9787988
。否则,它必须将每个字符串CI
转换为一个数字来进行测试,因此进行表扫描。
(当您提供SHOW CREATE TABLE
时,您可能会得到更快的答案。)