怎样做网站流量统计,中国100强企业排行榜,wordpress电子商务主题 中文版,怎么查看竞争网站怎么做的seoMySQL8新出了一个多值索引#xff0c;我还没体验过呢#xff0c;今天试一试。
建表 我先建个表试一试多值索引的效果。我粗略地看了下多值索引的介绍#xff0c;发现是只适用于数组类型的。所以我建一个含有数组字段的表试一试。语法还是挺麻烦的#xff1a;
create tabl… MySQL8新出了一个多值索引我还没体验过呢今天试一试。
建表 我先建个表试一试多值索引的效果。我粗略地看了下多值索引的介绍发现是只适用于数组类型的。所以我建一个含有数组字段的表试一试。语法还是挺麻烦的
create table student(id bigint primary key auto_increment,name varchar(32),tags JSON,index student_tags((cast(json_extract(tags, _utf8mb4$) as char(32) array)))
);测试 我插入数据试一试如下
insert into student(name, tags) value (小张, [女生,成绩差]);
select * from student where 女生 member of (tags);果然能查出数据。 但是还是要看看执行计划我对比了两种写法一个是用json的路径虽然我的数组是保存在json的根路径下但是我还是写一个$符号代表根。
explain select * from student where 女生 member of (tags-$); 从结果上看是用到了索引。 但是如果不使用$符号就没命中索引。SQL改成:
explain select * from student where 女生 member of (tags); 原因 出现那种情况跟我创建索引的语句有关我现在换种写法建个新表
create table student1(id bigint primary key auto_increment,name varchar(32),tags JSON,index student_tags((cast((tags) as char(32) array)))
);
insert into student1(name, tags) value (小张, [女生,成绩差]);
explain select * from student1 where 女生 member of (tags);这个执行计划就显示命中了索引