我有一个postgres数据库,它有大约name
,000行和许多(大约60)列.感兴趣的列是name
和category
,两者都是varchars.
create table items
(
id uuid,
name varchar(256),
category varchar(256),
data varchar(256)[],
...
)
我的应用程序经常发出以下查询
-
select * from items where name = 'name';
个 -
select * from items where category = 'category';
个 -
select * from items where name = 'name' and category = 'category';
个 - `SELECT*FORM ITEMS WHERE id=‘id’;
更不常见的是
select * from items where 'data' = ANY(data);
为这些数据编制索引以最大化效率的最佳方式是什么?我应该在两个列上都有一个索引吗?如果是,按什么顺序?
name
和category
列都不能保证是唯一的.我估计大约有name
0个类别和大约40,000个唯一的名字.