据我了解,当我们使用COUNT
,DISTINCT
或LIKE %query%
(两边的通配符)关键字运行 SQL 查询时,无法使用索引,数据库必须进行全表扫描。
有什么方法可以提高这些查询的性能吗?
他们真的不能使用索引还是我们可以以某种方式解决这个问题?
如果我们只需要返回一列,我们可以进行仅索引扫描吗?例如:select count(id) from MY_TABLE
: 可能在这种情况下,如果我们在“id”上有索引,我们可以进行仅索引扫描并避免命中整个表?
我的问题具有一般意义:如果我们必须使用上述运算符,您能给我一些性能指南吗?
更新至于我,我使用 PostgreSQL。