用于复杂条件搜索的DBMS

时间:2018-02-06 10:53:47

标签: database mongodb postgresql

目标是尽可能快地进行查询。

Postgres表包含10.000.000条记录,每条记录有30种不同的属性。

CREATE TABLE films (
    code        char(5) CONSTRAINT firstkey PRIMARY KEY,
    title       varchar(40) NOT NULL,
    did         integer NOT NULL,
    date_prod   date,
    kind        varchar(10),
    len         interval hour to minute
    -- and ~25 more columns
);

用户以非常具体的方式过滤数据,但始终基于一系列条件。

例如,用户A需要对通过列codetitlediddate_prod过滤的10毫米记录进行分页,并按列date_prod排序和title。他只是表演了几个类似的组合,但他每天重复搜索很多次。因此,重点是:条件复杂,但各种组合很小。通常每个用户只需3-5个。

可能这也很重要:用户只希望看到一些列,而不是所有列。这与他在查询中使用的条件有关。

此表中的记录每天都会更新多次,因此每次用户都会看到更新的数据,因此缓存在此处不起作用。

此应用程序由少量用户使用(少于10,000)并且永远不会超过此数量。

我需要的是尽可能快地进行查询。没关系,如果每次第一次用户创建新搜索(一堆查询条件+非常具体的列集)时,将花费几秒钟来给出结果。但是,如果此用户保存了这组条件和列,我需要尽快进行此搜索的所有进一步重复,尽管数据一直在更新。

我怀疑索引每列是个好主意。那么,我该怎么做? PostgreSQL有材料观点?可能是MongoDB或其他nosql解决方案在某种程度上会更好地工作吗?

0 个答案:

没有答案