0

我们正在使用 innoDB 引擎在 MySql 中开发我们的数据库。该数据库包含一个 varchar 类型的列,每个条目包含大约 3000 个字符。我们将在此列上提供搜索。为了加快速度,我们需要在该列上添加索引。你能提供一些这方面的信息吗?

我们需要放入哪种类型的索引来加快搜索速度?我们是否需要对它进行一些其他的关注以提高性能?

4

2 回答 2

3

如果通过搜索,您的意思是您将执行如下查询:

SELECT * from cars WHERE car LIKE '%{search_str}%'

那么恐怕即使您向car列添加键 mysql 仍然必须执行全扫描,并且您的查询可能会非常慢。

如果您计划支持要搜索的大量数据并期望一些高 qps 数字,我建议您查看Apaches Lucene项目,它可以大大加快执行的任何搜索查询。此外,它还支持全文搜索。

于 2009-05-18T08:35:34.387 回答
1

就像鸭子说的那样,如果您要使用 SQL LIKE 查询列,那么无论您在列上放置什么索引,查询都会非常慢。

有2个选项:

  • 切换到 MyIsam 数据库而不是 InnoDB 并在此列上使用全文搜索。这是通过在列上放置一个“全文”索引来完成的。更多信息。
  • 使用 Lucene 之类的工具进行全文搜索
于 2009-05-18T08:44:13.590 回答