MySQL-JSON与虚拟列结合使用提升性能


1-获取 json中的属性值 【  列名 -> '$.属性名'  】

 

select extra -> '$.car_name' from m_table where  '$.car_name'="jojo";

 

2-优化查询性能,构建虚拟列,并在虚拟列上加索引 (json_extract:从指定数据中提取属性值;json_unquote:解除与json的引用;virtual:为虚拟列,只读不写

新增虚拟列(虚拟列 只读不写,但是更新 原列中的属性值,虚拟列的值也会同步更新)

 

alter table m_table add column `car_name` varchar(30)  GENERATED ALWAYS AS

(json_unquote(json_extract(`extra`,_utf8mb4,'$.car_name')))  virtual null

 

建立索引:

create index idx_car_name on m_table(car_name);


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM