PostgreSQL 中是否有任何索引类型为查找提供O(1) 复杂度?在字符串上?
我不认为任何东西,甚至是哈希索引,都可以保证 O(1)。
where x = 'a'
或集合时才能实现where x in ('a','b')
与 B 树索引相比,哈希索引可以提高性能的一种方法是将其哈希为较小的固定大小的数据块。
但是,从最新版本(9.1)的文档来看:
警告
哈希索引操作目前没有 WAL 日志记录,因此在数据库崩溃后可能需要使用 REINDEX 重建哈希索引。它们也不会通过流或基于文件的复制进行复制。由于这些原因,目前不鼓励使用哈希索引。