文章插图
文章插图
EXPLAIN分析结果如下,两者查询扫描的行数都限定在了2931行
文章插图
文章插图
四、全文索引查询因为全文索引只支持CHAR、VARCHAR和TEXT,我们需要把JSON字段定义改一下
ALTER TABLE tmp_test_course MODIFY `outline` VARCHAR(1024) NOT NULL DEFAULT '[]'
添加全文索引ALTER TABLE tmp_test_course ADD FULLTEXT INDEX outline (outline);
现在再来用全文索引进行检索SELECT * FROM tmp_test_course WHERE `type`=5 AND del=2 AND is_leaf=1AND MATCH(outline) AGAINST ('jy1577683381775 jy1577683380808 jy1577683379178 jy1577683378676 jy1577683377617 jy1577683376672 jy1577683375903 jy1578385720787 jy1499916986208 jy1499917112460 jy1499917093400 jy1499917335579 jy1499917334770 jy1499917333339 jy1499917331557 jy1499917330833 jy1499917329615 jy1499917328496 jy1576922006950 jy1499916993558 jy1499916992308 jy1499917003454 jy1499917002952')
耗时11.6毫秒,速度提升极其明显,可见全文索引的牛逼 。文章插图
EXPLAIN分析结果如下,显示只扫描了一行
文章插图
结论以下是4种情况的执行结果
全文索引: 11.6ms联合索引:82.6ms(json)、136ms(like)json函数查询:196mslike查询: 248ms结论:全文索引 > 联合索引 > json函数查询 > like查询数据量越大,全文索引速度越明显,就10万的量,查询速度大概比直接查询快了20倍左右,如果是百万或千万级别的表,提升差距会更加大,所以有条件还是老老实实用全文索引吧
来源:https://www.cnblogs.com/chenqionghe/p/12367268.html
【MySQL全文索引、联合索引、like查询、json查询速度大比拼】
推荐阅读
- 如何判定网站是否被搜索引擎降权
- 搜索引擎抓取信息的原理
- 什么是搜索引擎营销网站推广?
- 为什么搜索引擎喜欢h1标签
- 什么是搜索引擎友好的内容
- MySQL千万级大表优化,看这一篇就忘不掉了
- 一条MySQL报警的分析思路
- MySQL 8.0 InnoDB无锁化设计的日志系统
- 搜索引擎简史
- 解析影响搜索引擎蜘蛛访问网站的原因