0
我正在使用rails
和geocoder
gem和postgres
數據庫。因此我必須將latitude
和longitude
字段添加到數據庫中。因此,一般來說,將索引添加到這些字段可以更快地進行查詢?是否需要在經緯度字段中添加索引
我正在使用rails
和geocoder
gem和postgres
數據庫。因此我必須將latitude
和longitude
字段添加到數據庫中。因此,一般來說,將索引添加到這些字段可以更快地進行查詢?是否需要在經緯度字段中添加索引
如果最終使用經緯度查詢數據庫中的記錄,您肯定會從添加索引中受益。索引不僅用於精確匹配查詢,還用於比較查詢,如select * from table_name where latitude between 30 and 40 and longitude > 50
。 根據查詢和記錄數量,postgres查詢計劃員將選擇最佳方式來查找匹配記錄(順序掃描或索引掃描)。
當僅基於一個字段進行搜索時,就可以了。正如我們在這裏我們索引兩個讓我困惑...不是不好? – Abhilash
這並不壞。您也可以考慮在經度和緯度上使用單個多列索引,而不是使用兩個單獨的索引,但在這種情況下,您必須確保查詢使用與索引中相同的列順序。例如,如果您創建如下索引: 'CREATE INDEX test_multi_idx ON測試(經度,緯度);',您的查詢應該是'... WHERE latitude ...和longitude',否則索引將不會被使用 – makagonov
感謝您的信息..任何已知的文章或教程有關此? – Abhilash