MySQL表中的地址搜索

时间:2013-03-06 22:59:44

标签: mysql sql search database-design

我的表包含五百万个地址作为字符串。 有一个用户界面允许您按地址搜索,它以最简单的方式实现 - 在搜索字符串的两端使用带有通配符的LIKE语法。 然而,这种方法确实很慢(特别是当搜索结果必须按某些标准排序时)。 我想使用全文搜索,因为它会更快,但它限制用户,我不想要它,因为大多数搜索查询只包含单词的一部分。 地址也可以缩写。

我该怎么办?我怎样才能更有效地实现地址搜索,但不会牺牲大部分用户体验。

修改 我刚刚读到,在执行match against全文搜索时,我实际上可以在字符串的末尾使用通配符。 因此,如果我存储反转的地址,也许我可以做前缀通配符全文搜索。 但它会更快,多少?有一些基准吗?我找不到一个。

1 个答案:

答案 0 :(得分:0)

您可能需要查看Full-Text Searches。 SQL中的LIKE运算符效率非常低,尤其是当您拥有那么多记录时。