婷婷综合国产,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格式檢索的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 天柱县| 腾冲县| 平塘县| 五家渠市| 鲜城| 铜梁县| 会宁县| 浏阳市| 贺兰县| 前郭尔| 嵊泗县| 九寨沟县| 江油市| 乐业县| 邵武市| 闸北区| 黄石市| 宁波市| 富顺县| 德令哈市| 台湾省| 平江县| 平阴县| 丹棱县| 浮山县| 新丰县| 恩施市| 集贤县| 永州市| 普兰县| 宁南县| 襄垣县| 杭锦后旗| 襄汾县| 涿州市| 晋江市| 洞头县| 彩票| 社会| 合山市| 华蓥市|