查询背景 有一个表tmp_test_course大概有10万条记录,然后有个json字段叫outline,存了一对多关系(保存了多个编码,例如jy1577683381775)
我们需要在这10万条数据中检索特定类型的数据,目标总数据量:2931条
SELECT COUNT(*) FROM tmp_test_course WHERE type=5 AND del=2 AND is_leaf=1
一、like查询 耗时248毫秒
可以看到,查询耗时196毫秒,速度稍微快了一点
ALTER TABLE tmp_test_course ADD KEY type-del-is_leaf (type,del,is_leaf)
加入索引后再执行like和json查询,明显提速。
like执行用了136毫秒,json查询用了82.6毫秒,由此可见针对json类型使用json函数查询比like快
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=1
AND