mysql8多值索引

  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);

  这个执行计划就显示命中了索引:
在这里插入图片描述

相关推荐

  1. MySQL-8. mysql索引

    2024-07-15 06:34:02       32 阅读
  2. mysql 索引和null的关系

    2024-07-15 06:34:02       29 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-15 06:34:02       70 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-15 06:34:02       74 阅读
  3. 在Django里面运行非项目文件

    2024-07-15 06:34:02       62 阅读
  4. Python语言-面向对象

    2024-07-15 06:34:02       72 阅读

热门阅读

  1. 使用adb连接安卓手机

    2024-07-15 06:34:02       26 阅读
  2. Android人脸解锁源码解析

    2024-07-15 06:34:02       18 阅读
  3. 速盾:高防cdn和普通cdn的区别?

    2024-07-15 06:34:02       33 阅读
  4. Tick数据的清洗和1分钟K线合成

    2024-07-15 06:34:02       19 阅读
  5. App测试自动化工具UIAutomator2的使用

    2024-07-15 06:34:02       26 阅读
  6. React@16.x(57)Redux@4.x(6)- 实现 bindActionCreators

    2024-07-15 06:34:02       29 阅读
  7. PyTorch构建一个肺部CT图像分类模型来分辨肺癌

    2024-07-15 06:34:02       19 阅读
  8. Python学生信息管理系统的设计与实现

    2024-07-15 06:34:02       29 阅读
  9. SQL优化

    SQL优化

    2024-07-15 06:34:02      34 阅读
  10. RocketMQ

    RocketMQ

    2024-07-15 06:34:02      24 阅读
  11. SpringBoot实战:定时任务

    2024-07-15 06:34:02       21 阅读
  12. .NET 开源库技术栈汇总

    2024-07-15 06:34:02       20 阅读
  13. UDP 报文结构与注意事项全解析

    2024-07-15 06:34:02       28 阅读