公司起名字大全免费四个字,厦门seo排名优化方式,西宁百度推广公司电话,免费找客户网站查询背景有一个表tmp_test_course大概有10万条记录#xff0c;然后有个json字段叫outline#xff0c;存了一对多关系(保存了多个编码#xff0c;例如jy1577683381775)我们需要在这10万条数据中检索特定类型的数据#xff0c;目标总数据量#xff1a;2931条SELECTCOUNT(*) …查询背景有一个表tmp_test_course大概有10万条记录然后有个json字段叫outline存了一对多关系(保存了多个编码例如jy1577683381775)我们需要在这10万条数据中检索特定类型的数据目标总数据量2931条SELECTCOUNT(*) FROM tmp_test_course WHEREtype5AND del2AND is_leaf1我们在限定为上面类型的同时还得包含下面任意一个编码(也就是OR查询)下面分别列出4种方式查询outline字段给出相应的查询时间和扫描行数一、like查询耗时248毫秒EXPLAIN分析结果如下全表扫描二、json函数查询json官方函数耗时196毫秒速度稍微快了一点EXPLAIN分析结果如下还是全表扫描三、联合索引查询下面为该表建立一个联合索引(本来想建一个type-del-is_leaf_outline的索引但是outline字段太长限制所以只加type-del-is_leaf_的联合索引ALTERTABLE tmp_test_course ADDKEYtype-del-is_leaf (type,del,is_leaf)加入索引后再执行like和json查询明显提速。like执行用了136毫秒json查询用了82.6毫秒由此可见json查询比like快EXPLAIN分析结果如下两者查询扫描的行数都限定在了2931行四、全文索引查询因为全文索引只支持CHAR、VARCHAR和TEXT我们需要把JSON字段定义改一下ALTERTABLE tmp_test_course MODIFYoutlineVARCHAR(1024) NOTNULLDEFAULT[]添加全文索引ALTERTABLE tmp_test_course ADD FULLTEXT INDEXoutline (outline);现在再来用全文索引进行检索耗时11.6毫秒,速度提升极其明显可见全文索引的牛逼。EXPLAIN分析结果如下显示只扫描了一行结论以下是4种情况的执行结果全文索引: 11.6ms联合索引82.6ms(json)、136ms(like)json函数查询196ms