标签查询如何才能中索引( JSON_CONTAINS 如何加索引)

标签查询如何才能中索引( JSON_CONTAINS 如何加索引)
数据库

背景

在业务数据中,为了方便大数据检索和用户画像分析,都会增加tag 标签,而json array 字段类型是最适合这类数据的,当然也可以使用多对多的关系表,然后加索引,但是在查询是需要join,为了个tag查询,往往也是得不偿失,然而使用JSON_CONTAINS 查询如何才能加索引呢?

解决方案

增加索引

CREATE INDEX tag_json_index ON biz_article ( (CAST(tags AS char (200) ARRAY)) );

查看效果

 explain SELECT * FROM biz_article WHERE JSON_CONTAINS(tags->'$', JSON_ARRAY("java"));

idselect_typetablepartitionstypepossible_keyskeykey_lenrefrowsfilteredExtra
1SIMPLEbiz_articlenullrangetag_json_indextag_json_index83null1100Using where
bigcong