如果我要在 MySQL 中按照以下规范设计数据库:
1) 超过 2500 万条记录
2) 门牌号、街道、城镇、城市、邮政编码列
3) 街道、城镇、城市和邮政编码需要全文搜索(在前端,搜索将在 AJAX 上运行,文本输入字段立即出现下拉结果)
我将如何设计上述内容?
我在考虑使用一张桌子 - 这是一个坏主意吗?鉴于这是地址数据,我不确定是否要跨不同的表进行规范化。我还在想,如果使用单个表,我会在可搜索字段中创建一个 FULLTEXT 索引。
我以前没有使用过这么大的数据库。以上是个坏主意吗?
更新#1:
决定对街道和邮政编码列进行规范化,这些列是实际搜索的唯一列(重新检查了原始规范)。做了一些快速的数学运算,街道名称的基数是总数据集的 2% 和邮政编码的 6%,所以我认为这是最好的前进方式。
目前运行 2900 万行的导入 - 大约需要 5 个小时。为了结束这个问题,稍后将在性能测试中再次更新。