【发布时间】:2011-10-04 10:03:33
【问题描述】:
LIKE 关键字会在 SQLite 和/或 MySQL 中使用索引吗?
我会理解通配符匹配可能不使用索引,但是比较开始呢?
【问题讨论】:
LIKE 关键字会在 SQLite 和/或 MySQL 中使用索引吗?
我会理解通配符匹配可能不使用索引,但是比较开始呢?
【问题讨论】:
这取决于:
WHERE field1 LIKE 'test' << can use index
WHERE field1 LIKE 'test%' << can also use index
WHERE field1 LIKE '%test' << cannot use index
WHERE field1 LIKE '_test' << cannot use index
只要通配符在开头,就不能使用索引。如果您在通配符之前有固定数据,则可以使用索引。
一些数据库,例如 PostgreSQL,有一些技巧可以在所有情况下都允许使用索引,但 MySQL 和 SQLite 没有。
【讨论】:
这可能会对您有所帮助:How MySQL Uses Indexes。
【讨论】: