如何处理具有 NULL 值的索引列?

How are indexed columns with NULL values treated?

Informix-SE 4.10、7.32 和 IDS 11.70:我在 DATETIME YEAR TO FRACTION 列上有一个索引,我最近将其作为时间戳添加到具有 ~800K 行的 table 中。该列随着用户更新或添加新行而被填充。到目前为止,约 7K 行具有 DATETIME 值,但其余行均为 NULL。 SE 和 IDS 在查询、更新和排序时如何处理具有 NULL 值 DATETIME 列的行?..这些行是否被忽略?索引的原因是支持查询以使用 "select max(datetime_col)" 语句查找最近添加或更新的行。此列的降序索引会提供更好的性能吗?

按降序排序 NULLS 将排在最后,按升序(默认)排在最前面。

但处理方式取决于您过滤数据的方式。

您不能将 NULL 与一个值进行比较,它始终为假。

因此,如果您在 table 中尝试获取日期大于 CURRENT 的所有行,则不会获取包含 NULL 中的列的行。

类似地,如果您尝试获取日期小于 CURRENT 的所有行,则不会获取列在 NULL 中的行。

你想要的是测试它是IS NULL还是IS NOT NULL