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