【发布时间】:2017-02-01 00:43:54
【问题描述】:
为公寓网站构建搜索引擎,但我不知道如何索引 apartments 表。
查询示例:
...WHERE city_id = 1 AND size > 500 AND rooms = 2...WHERE area_id = 2 AND ad_type = 'agent' AND price BETWEEN 10000 AND 14000...WHERE area_id = 2 OR area_id = 4 AND published_at > '2016-01-01' AND ad_type = 1
如您所见,列可以变化很大,WHERE 子句中的列数可以多达 10 个,甚至可能更多。
- 我应该将它们全部编入索引吗?
- 只有最常见的?
【问题讨论】:
-
我不建议将所有这些都编入索引,属性列通常不应编入索引(如大小、房间和价格)。所以也许是
(city_id) , (area_id,ad_type),但没有看到数据并针对特定的WHERE,我们无法告诉你什么是最好的。顺便说一句 - 使用area_id IN(2,4)而不是两个 OR
标签: postgresql indexing