首页 > mysql like语句优化

mysql like语句优化

在一个表中有个1000W条记录。其中一个字段是tags 内容格式是这样的: tag1;tag2;tag3;tag4; 内容格式都是这样的。我想找到tags含有tag3的 如果用like需要全表扫描。我看mysql有个函数FIND_IN_SET,然后我的sql可以写成select * from A where FIND_IN_SET('tag3',REPLACE(tags,';',',')) 但是感觉效率仍然不高。不知道还有什么能优化的吗?数据库表已经定了优化不了了。。。。谢谢各位!


索引或者重新建表


使用检索引擎吧,比如Sphinx


如果你舍得建一个fulltext索引的话,效率是否会有所提升呢


我支持 @钱晓朋 的做法,结构重组也属于优化的一种,而且效果很好,就看你怕不怕麻烦了


优化我不清楚,但是应该tag字段应该要分成一张tag表,然后再建立一张中间表对应啊~

【热门文章】
【热门文章】