【问题标题】:mysql performancemysql性能
【发布时间】:2009-05-18 08:16:04
【问题描述】:

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

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

【问题讨论】:

    标签: mysql innodb


    【解决方案1】:

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

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

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

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

    【讨论】:

      【解决方案2】:

      就像ducky 所说,如果你要使用SQL LIKE 查询列,那么无论你在列上放置什么索引,查询都会非常慢。

      有两种选择:

      • 切换到 MyIsam 数据库而不是 InnoDB 并在此列上使用全文搜索。这是通过在列上放置一个“全文”索引来完成的。 More Information.
      • 使用 Lucene 等工具进行全文搜索

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-07-12
        • 2014-02-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多