sql - NULL 值如何影响数据库搜索的性能?

标签 sql database oracle database-performance query-performance

在我们的产品中,我们有一个通用的搜索引擎,并试图优化搜索性能。查询中使用的许多表都允许空值。我们是否应该重新设计我们的表以禁止空值进行优化?

我们的产品在 OracleMS SQL Server 上运行。

最佳答案

Oracle 中,NULL 值不被索引,即。 e.这个查询:

SELECT  *
FROM    table
WHERE   column IS NULL

将始终使用全表扫描,因为索引没有覆盖您需要的值。

不仅如此,这个查询:

SELECT  column
FROM    table
ORDER BY
        column

出于同样的原因,也会使用全表扫描和排序。

如果您的值本质上不允许 NULL,则将该列标记为 NOT NULL

关于sql - NULL 值如何影响数据库搜索的性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1017239/

相关文章:

Oracle 唯一约束和主键不为空

sql - 任何方式来识别哪些行是由 where 子句中的哪些条件生成的

database - 保持与 Mnesia 的关系完整性

database - 需要帮助理解脚本格式和查询之间的区别

swift - 如何使用 sqlite 将我的图像保存到数据库中?

Oracle:函数的全局命名空间限定符?

performance - 当我为DATE列传递java.sql.Timestamp时,为什么Oracle这么慢?

php - mysql查询奇怪的错误

Entity Framework 生成的用于字符串匹配的 SQL

sql - 如何删除SQL Server中两个表中的数据?