【发布时间】:2010-05-07 23:47:53
【问题描述】:
我有一个需要搜索的包含 10 列的表(表本身大约有 20 列)。因此,用户将输入至少一列但可能全部十列的查询条件。然后将所有非空条件放入 AND 条件
假设用户为 column1 和 column4 和 column8 提供了非空条件,则查询将是:
select * from the_table
where column1 like '%column1_query%'
and column4 like '%column4_query%'
and column8 like '%column8_query%'
所以我的问题是:创建 1 个包含 10 列的索引是否更好? 10 个索引,每个索引 1 列?或者我是否需要找出经常一起查询哪些列集并为它们创建索引(在上例中为列 1,4 和 8 上的索引)。
如果我的理解是正确的,10 列的单个索引只有在所有 10 列都符合条件时才有效。
欢迎在这里提出任何建议,此外,表格的行数预计仅为 20-30K 行左右,但我想确保表格上的所有搜索都很快。
谢谢!
【问题讨论】:
标签: sql postgresql indexing