我面对的是MySql查询,它需要太多的CPU和时间来执行。
这个查询看起来像
从表中选择*表。a相似的%a%或表。a相似的%b%或表。a类似的%c%
由于业务需求,我们确实需要类似的语句(我们需要寻找任何等式)。
那么,如何才能加快速度呢?我们有什么隐藏室可以用吗?是否有一些NoSql解决方案会很好?我想,即使我们将所有表加载到内存中,由于这些喜欢,我们仍然会因为全文扫描而性能低下。
如果我们在那里使用regexp会更好吗?什么样的方法通常适合这样的文本搜索目的?如果我们切换到NoSql,它会更好吗?什么特定的产品可以帮助我们?
发布于 2012-01-24 19:29:02
问题是,通配符搜索不能非常有效地使用索引,因此导致性能问题。RegEx不会更好,事实上它可能会更糟。
如果您使用通配符的原因是从文本字段中选择单个单词,我建议在该字段上设置一个全文索引。它将允许您在不使用通配符的情况下搜索单个单词。但是,如果您正在搜索部分单词(如示例%b% ),则不会有太大帮助。
由于几个查询性能不佳而切换到NoSQL似乎是极端的过度,我怀疑仅仅因为这个原因它是否有足够的帮助来证明这一点。
https://stackoverflow.com/questions/8992775
复制相似问题