我们使用innoDB引擎在MySql中开发我们的数据库。数据库包含一个varchar类型的列,每个条目包含大约3000个字符。我们将在此列上提供搜索。为了加快速度,我们需要在这个列上添加索引。你能在这方面提供一些信息吗?
我们需要放入哪种类型的索引来加快搜索速度?为了提高性能,我们还需要关注其他方面吗?
发布于 2009-05-18 08:35:34
如果您所说的搜索意味着您将执行如下查询:
SELECT * from cars WHERE car LIKE '%{search_str}%'
然后,我担心即使您向car
列添加了一个键,mysql仍然必须执行完全扫描,并且您的查询可能会非常慢。
如果你计划支持大量的数据进行搜索,并期望一些高qps的数字,我建议你看看Apaches Lucene项目,它可以极大地加快执行任何搜索查询的速度。此外,它还支持全文搜索。
发布于 2009-05-18 08:44:14
就像ducky说的,如果你打算用SQL查询列,不管你在列上放什么索引,你的查询都会很慢。
有两个选项:
https://stackoverflow.com/questions/876709
复制相似问题