我有一个数据库,其中一个常见查询是“blobCol 为空”,我认为这会导致性能下降(如在全表扫描中)。我不需要索引 blobCol 的内容。
哪些指标可以改善这一点?是否可以在表达式(blobCol 不为空)而不只是列上构建索引?
是的,大多数 DBMS 都支持它,例如在PostgreSQL中
CREATE INDEX notNullblob ON myTable (blobCol is not NULL);
似乎您可以在 SQL Server 上做的最好的事情是创建一个计算列,例如,如果 blob 为空,则包含 1,否则为 0,并在其上创建索引。
一些数据库允许对表达式进行索引,但普通索引应该会显着减少查询的运行时间。