mysql多字段模糊查询速度慢如何解决?

查看 20|回复 1
作者:kxyang   
普通索引 mysql多字段模糊查询速度慢
求助哪种索引类型查询速度会更快
模糊匹配用户名其中的部分内容和用户ID的部分内容,数据量大的时候匹配很慢
select*from table where username like '%红%' and userid like '%678%';

多字, 速度慢

Main91   

MySQL查询中使用模糊匹配(LIKE 语句)以及多字段查询确实会对查询性能造成影响。优化的方法可以考虑以下几种:
使用全文索引(Full Text Indexes):跟其他类型索引有所不同,全文索引适用于需要在一列或者多列中匹配文字的场景。它对 LIKE 'xxx%' 这样的查询优化效果很好,但是对 '%xxx%' 这样的查询优化有限。
使用索引优化前缀索引:MySQL 支持对字符串的左边部分进行索引,这称为前缀索引。尽管对于 '%xxx%' 的查询优化不明显,但你可以尝试创建索引优化 LIKE 'xxx%' 的查询。
优化数据模式:对于一些常用的查询,你可以考虑在写入数据时就把查询的部分数据提前计算出来存储。比如,将常用的查询条件合并到一列保存,然后对这一列进行索引和查询。
减少查询的数据量:尽可能地减少查询需要查找的数据量,例如只查询最近的数据,或者按某种逻辑分区来查询。
使用更有效的数据库管理工具:某些数据库管理工具如 Elasticsearch 等,非常适合做全文搜索和模糊匹配搜索,你可以将一些搜索压力分散到这类工具上。
您需要登录后才可以回帖 登录 | 立即注册

返回顶部