如果我是在MySQL數據庫設計以下規格:在25mil記錄設計一個快速查找地址數據庫
2)的門牌號,街道,鎮,市列
1)郵政編碼
3)街道,鎮,市,郵政編碼必須是全文搜索的(在前端側,搜索將在AJAX運行了與直接下拉結果中的文字輸入字段)
我會如何設計上述?
我在想用一張桌子工作 - 這是一個壞主意嗎?由於這是地址數據,我不確定是否要在不同的表格之間進行規範化。我也在想,如果使用單個表格,我會在可搜索字段中執行FULLTEXT索引。
我以前沒有用過這麼大的數據庫。以上是一個壞主意嗎?
更新#1:
決定正常化街道和郵編列,這實際上是被搜索上唯一的(重新檢查原始規範)。街道名稱有一些快速的數學和基數是2%,後編碼數據集的6%,所以我認爲這是最好的前進方向。
當前正在運行2900萬行的導入 - 大約需要5個小時。爲了完成這個問題,稍後會在性能測試中再次更新。
感謝您的反饋。如果你覺得值得一試,那麼我會放棄它。我對這些古怪的地址並不那麼困擾 - 我最關心的是查找的速度,因爲它需要近乎實時地發生(響應輸入字段中輸入的字符)。我不想花時間導入數據並創建索引,但沒有指出在單表和FULLTEXT設計中性能是否足夠。 –
@RC。 。 。讓我說。這是合理的,值得嘗試。 *但是*對於2500萬個地址的實時響應,您可能需要更多自定義代碼。例如,谷歌會做一些相當複雜的事情來支持其實時查詢建議。 –