我创建了一个postgres表,看起来像:
name ID SNO
jack 12 1
bob 123 2
andy 34 3
jack 23 4
等。它共有4100万条目。 SNO是我持续INT值的主要关键。当我运行查询来选择特定的SNO时,它的工作速度很快。然而!我需要在'name'上运行查询,该查询应该返回特定名称的所有实例。请注意,名称不必是唯一的,并且很可能重复但具有不同的ID。搜索名称的查询需要很长时间才能找到。我尝试使用以下方法在'name'上创建索引:
CREATE INDEX name ON userlist(name)
然而,虽然这会提高性能,但仍然太慢。有没有什么方法可以索引'name'作为'text'数据类型来提高访问性能,就像访问'int'SNO一样?
答案 0 :(得分:1)
尝试为内存中的索引留出足够的空间。 shared_buffers
设置对此有帮助。