MySQL全文索引、联合索引、like查询、json查询速度大比拼( 二 )


MySQL全文索引、联合索引、like查询、json查询速度大比拼

文章插图
 

MySQL全文索引、联合索引、like查询、json查询速度大比拼

文章插图
 
EXPLAIN分析结果如下,两者查询扫描的行数都限定在了2931行
MySQL全文索引、联合索引、like查询、json查询速度大比拼

文章插图
 

MySQL全文索引、联合索引、like查询、json查询速度大比拼

文章插图
 
四、全文索引查询因为全文索引只支持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毫秒,速度提升极其明显,可见全文索引的牛逼 。
MySQL全文索引、联合索引、like查询、json查询速度大比拼

文章插图
 
EXPLAIN分析结果如下,显示只扫描了一行
MySQL全文索引、联合索引、like查询、json查询速度大比拼

文章插图
 
结论以下是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查询速度大比拼】


推荐阅读