我的客户有一个巨大的数据库,仅包含三个字段:
- 主键(无符号数)
- 姓名(多字文本)
- 描述(最多 1000 个 varchar)
该数据库拥有超过数十亿条条目。我以前没有处理如此大量数据的经验。
他希望我设计一个使用 AJAX(如 Google)的界面来搜索该数据库。我的查询像乌龟一样慢。
在如此大的数据库中搜索文本字段的最佳方法是什么?如果用户在界面上输入拼写错误,我该如何返回他想要的内容?
如果您使用 FULLTEXT 索引,并且您正确地编写了查询,并且返回结果的速度不够,那么您正在进入一个 MySQL 可能根本无法满足您需求的领域。
You may能够调整设置,购买足够的 RAM 以确保整个数据集 100% 适合内存。毫无疑问,那里的性能提升可能是巨大的。
我绝对建议您研究一下 mysql 配置的调整。我们过去有过一些愚蠢的设置。操作系统默认设置往往非常糟糕!
但是,如果您此时遇到麻烦,您可以:
- 创建一个单独的表,其中包含每个单词(已索引)及其引用的记录 ID。这将允许您搜索单个单词。
- Use a different system that's optimized for solving this problem. Unless my information is now outdated, the 2 engines that are the most popular for solving this problem are:
- Sphinx
- 索尔/卢塞恩
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)