【发布时间】:2010-09-21 17:30:25
【问题描述】:
我有一个数据库,其中一个常见查询是“blobCol 为空”,我认为这会导致性能变差(如在全表扫描中)。我不需要索引 blobCol 的内容。
哪些索引可以改善这一点?索引可以建立在表达式(blobCol 不为空)而不是列上吗?
【问题讨论】:
我有一个数据库,其中一个常见查询是“blobCol 为空”,我认为这会导致性能变差(如在全表扫描中)。我不需要索引 blobCol 的内容。
哪些索引可以改善这一点?索引可以建立在表达式(blobCol 不为空)而不是列上吗?
【问题讨论】:
是的,大多数 DBMS 都支持它,例如在 PostgreSQL 它是
CREATE INDEX notNullblob ON myTable (blobCol is not NULL);
似乎您在 SQL Server 上可以做的最好的事情是创建一个 computed column,例如,如果 blob 为 null,则包含 1,否则为 0,并在其上创建索引。
【讨论】:
一些数据库允许对表达式进行索引,但普通索引应该会显着减少查询的运行时间。
【讨论】: