显然,如果列有一些不同的值,索引就可以正常工作。
在几乎每个条目都是唯一的列上创建索引是否有效(例如created_on(DATE)列)?
答案 0 :(得分:4)
是的,但请记住,日期以内部格式存储,因此请注意WHERE子句中的相等或连接条件。例如,如果您要查找7月7日的所有结果,通常需要“WHERE created_on> = to_date('07 / 07/2009',/ MM / DD / YYYY')和created_on < to_date('07 / 08/2009',/ MM / DD / YYYY')“条件。避免将函数应用于WHERE子句中的日期列 - 这将阻止使用索引,除非您创建基于函数的索引。
答案 1 :(得分:3)
基本上,如果需要查询相关列,则还应该索引“几乎唯一”的列。如果没有索引,则需要进行全表扫描(检查所有行)。之前已经提出过此问题,因此有关详细说明,请参阅:should nearly unique fields have indexes