我们正在使用 innoDB 引擎在 MySql 中开发我们的数据库。该数据库包含一个 varchar 类型的列,每个条目包含大约 3000 个字符。我们将在此列上提供搜索。为了加快速度,我们需要在该列上添加索引。你能提供一些这方面的信息吗?
我们需要放入哪种类型的索引来加快搜索速度?我们是否需要对它进行一些其他的关注以提高性能?
如果通过搜索,您的意思是您将执行如下查询:
SELECT * from cars WHERE car LIKE '%{search_str}%'
那么恐怕即使您向car
列添加键 mysql 仍然必须执行全扫描,并且您的查询可能会非常慢。
如果您计划支持要搜索的大量数据并期望一些高 qps 数字,我建议您查看Apaches Lucene项目,它可以大大加快执行的任何搜索查询。此外,它还支持全文搜索。
就像鸭子说的那样,如果您要使用 SQL LIKE 查询列,那么无论您在列上放置什么索引,查询都会非常慢。
有2个选项: