MYSQL中json类型添加索引

在5.7版本之后 mysql引入新类型“json”

但是在数据量大的情况加 直接搜索json中的内容会造成慢sql

于是便想办法如何给json加上索引

但是json类型本身是不支持索引的

于是另辟蹊径   发现了一个新特性

虚拟字段

首先对旧表做新增字段处理

加入虚拟字段  虚拟字段的值来源为json中数据

alter table 表名 add 新增虚拟字段名 VARCHAR(20) GENERATED ALWAYS AS (`data` ->> '$.数据来源')

加完之后我们得到了一个新字段 直接给新字段加索引就可以了

CREATE INDEX `idc_idx` ON `表名`(`虚拟字段名`);  

友情提示:

如果你的数据库设计规范  可避免这样的问题

能重构还是需要重构才可

你可能感兴趣的:(mysql,json)