婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 簡單談談MySQL5.7 JSON格式檢索

簡單談談MySQL5.7 JSON格式檢索

熱門標簽:地圖簡圖標注 東莞外呼企業管理系統 手機外呼系統違法嗎 沈陽智能外呼系統供應商 桂林云電銷機器人收費 南通電銷外呼系統哪家強 谷歌地圖標注位置圖解 清遠申請400電話 如何選擇優質的外呼系統

MySQL5.7版本開始支持JSON格式,在創建表時,可以指定列表的數據類型為JSON,但是如何在JSON格式上創建索引呢??

本人做了一個簡單測試。

第一步:建立一個包含JSON類型的表:

CREATE TABLE json_test` (
 id` int (8) NOT NULL AUTO_INCREMENT,
 content` json NOT NULL ,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

第二步:初始化數據

insert into json_test(content) value( '{"name":"zhangsan","age":18}' );
insert into json_test(content) value( '{"name":"lisi","age":19}' );
insert into json_test(content) value( '{"name":"wangwu","age":20}' );

第三步:查詢JSON類列的數據

select json_extract(content,  '$.name' )  from json_test  where json_extract(content,  '$.name' )= "zhangsan" ;

通過expain分析改查詢語句,發現其走全表掃描

在網上查詢資料,得知如果要在JSON列上進行檢索,需要對檢索的key創建虛擬列,然后再虛擬列上創建索引

第四步:在content列上,對"name"建立虛擬列

ALTER TABLE json_test  ADD name_virtual  varchar (32) GENERATED ALWAYS  AS (json_extract(content,  '$.name' )) VIRTUAL;

第五步:對虛擬列創建索引

CREATE INDEX name_virtual_index  ON json_test(name_virtual);

再次做查詢( 注,where條件需要使用虛擬列來進行檢索,如果直接用JSON列比較,還是會走全表掃描 )

explain  select json_extract(content,  '$.name' )  from json_test  where name_virtual= "zhangsan" \G

總結:

其實MySQL通過一種空間換時間的做法,類似創建一個觸發器,把JSON列上的數據冗余存儲到虛擬列上,比較的時候通過走虛擬列的索引,再定位到實際數據。

您可能感興趣的文章:
  • MySQL5.7中的JSON基本操作指南
  • MySQL5.7 JSON類型使用詳解
  • Mysql5.7中JSON操作函數使用說明
  • mysql5.6及以下版本如何查詢數據庫里的json
  • 詳解Mysql中的JSON系列操作函數
  • MySQL操作之JSON數據類型操作詳解
  • MySQL插入json問題
  • mysql(5.6及以下)解析json的方法實例詳解
  • mysql5.7 新增的json字段類型用法實例分析

標簽:成都 重慶 常德 天津 內蒙古 湖州 貴州 臨沂

巨人網絡通訊聲明:本文標題《簡單談談MySQL5.7 JSON格式檢索》,本文關鍵詞  簡單,談談,MySQL5.7,JSON,格式,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《簡單談談MySQL5.7 JSON格式檢索》相關的同類信息!
  • 本頁收集關于簡單談談MySQL5.7 JSON格式檢索的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 公主岭市| 永昌县| 静安区| 咸宁市| 文登市| 菏泽市| 滦南县| 本溪| 慈溪市| 广丰县| 安化县| 缙云县| 波密县| 简阳市| 时尚| 安西县| 望都县| 海南省| 科尔| 五常市| 长乐市| 贺兰县| 平塘县| 中超| 华池县| 丹棱县| 连平县| 朝阳市| 阿坝| 巧家县| 大姚县| 怀柔区| 勐海县| 徐汇区| 宁强县| 乌拉特前旗| 淄博市| 常熟市| 蒲江县| 石嘴山市| 鄂托克旗|