首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场

mysql性能
EN

Stack Overflow用户
提问于 2009-05-18 08:16:05
回答 2查看 119关注 0票数 0

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

我们需要放入哪种类型的索引来加快搜索速度?为了提高性能,我们还需要关注其他方面吗?

EN

回答 2

Stack Overflow用户

发布于 2009-05-18 08:35:34

如果您所说的搜索意味着您将执行如下查询:

代码语言:javascript
运行
复制
SELECT * from cars WHERE car LIKE '%{search_str}%'

然后,我担心即使您向car列添加了一个键,mysql仍然必须执行完全扫描,并且您的查询可能会非常慢。

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

票数 3
EN

Stack Overflow用户

发布于 2009-05-18 08:44:14

就像ducky说的,如果你打算用SQL查询列,不管你在列上放什么索引,你的查询都会很慢。

有两个选项:

  • 切换到MyIsam数据库,而不是InnoDB,并对此列使用全文搜索。这是通过在列上放置一个'fulltext‘索引来实现的。More Information.
  • Use是一个类似Lucene的工具,用于全文搜索
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/876709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档