创建json类型的表测试:
mysql>创建表测试数据(JSON);
查询好,0行影响(0.47秒)
mysql>插入测试值(“{“名称”:“abc”,“性”:“南”、“区域”:(“1”,“2”)}”);
查询好了,1行影响(0.39秒)
mysql>插入测试值(“{“名称”:“abc”,“性”:“南”、“区域”:(“2”、“3”)}”);
查询好了,1行影响(0.39秒)
mysql>插入测试值(“{“名称”:“abc”,“性”:“南”、“区域”:(“3”、“4”)}”);
查询好了,1行影响(0.39秒)
mysql>从测试,选择json_type(数据),
+ - - - - - - - - - - - - - - - - - - +
| json_type(数据)|
+ - - - - - - - - - - - - - - - - - - +
|对象,,,,,|
+ - - - - - - - - - - - - - - - - - - +
1行集(0.15秒)
mysql>从测试;select *
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
|数据,,,,,,,,,,,,,,,,,,,,,,,|
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
|{“性”:“南”、“区域”:“1”,“2”,“名字”:“abc”} |
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
1行集(0.10秒)
mysql>选择json_extract(数据,美元. name),从测试;
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
| json_extract(数据,' $ . name ') |
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
|“abc”,,,,,,,,,,,,|
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
1行集(0.00秒)
mysql>选择json_extract(数据,美元。性”),从测试;
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
| json_extract(数据,”美元。性”)|
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
|“南”,,,,,,,,,,,,|
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
1行集(0.00秒)
mysql>选择json_extract(数据,美元。区”),从测试;
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
| json_extract(数据,”美元。区域”)|
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
| (“1”,“2”),,,,,,,,,,|
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
1行集(0.00秒)
在数据列上,对“区域”建立虚拟列
mysql>ALTER TABLE测试添加data_idx varchar(128)生成的总是作为(json_extract(数据,.area美元))虚拟;
查询好,0行影响(0.93秒)
记录:0,重复:0,警告:0
如果要在JSON列上进行检索,需要对检索的关键创建虚拟列,然后再虚拟列上创建索引。
mysql>改变表测试添加索引idx_data (data_idx);
查询好,0行影响(0.67秒)
记录:0,重复:0,警告:0
在条件需要使用虚拟列来进行检索,执行计划如下:
mysql>从测试解释select * data_idx='(“3”、“4”)的;
+ - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - +
| | id select_type | | | |表分区类型possible_keys |关键,,,| key_len |裁判,| |行额外过滤| |
+ - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - +
| 1 |简单的祝福;,,测试| |空,,,| ref, | idx_data,,387年,| idx_data |,,| const |,1 |大敌;100.00零,| |
+ - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - +
1行集,警告(0.04秒)
发现走了索引
mysql>创建表测试数据(JSON);
查询好,0行影响(0.47秒)
mysql>插入测试值(“{“名称”:“abc”,“性”:“南”、“区域”:(“1”,“2”)}”);
查询好了,1行影响(0.39秒)
mysql>插入测试值(“{“名称”:“abc”,“性”:“南”、“区域”:(“2”、“3”)}”);
查询好了,1行影响(0.39秒)
mysql>插入测试值(“{“名称”:“abc”,“性”:“南”、“区域”:(“3”、“4”)}”);
查询好了,1行影响(0.39秒)
mysql>从测试,选择json_type(数据),
+ - - - - - - - - - - - - - - - - - - +
| json_type(数据)|
+ - - - - - - - - - - - - - - - - - - +
|对象,,,,,|
+ - - - - - - - - - - - - - - - - - - +
1行集(0.15秒)
mysql>从测试;select *
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
|数据,,,,,,,,,,,,,,,,,,,,,,,|
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
|{“性”:“南”、“区域”:“1”,“2”,“名字”:“abc”} |
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
1行集(0.10秒)
mysql>选择json_extract(数据,美元. name),从测试;
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
| json_extract(数据,' $ . name ') |
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
|“abc”,,,,,,,,,,,,|
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
1行集(0.00秒)
mysql>选择json_extract(数据,美元。性”),从测试;
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
| json_extract(数据,”美元。性”)|
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
|“南”,,,,,,,,,,,,|
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
1行集(0.00秒)
mysql>选择json_extract(数据,美元。区”),从测试;
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
| json_extract(数据,”美元。区域”)|
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
| (“1”,“2”),,,,,,,,,,|
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
1行集(0.00秒)
在数据列上,对“区域”建立虚拟列
mysql>ALTER TABLE测试添加data_idx varchar(128)生成的总是作为(json_extract(数据,.area美元))虚拟;
查询好,0行影响(0.93秒)
记录:0,重复:0,警告:0
如果要在JSON列上进行检索,需要对检索的关键创建虚拟列,然后再虚拟列上创建索引。
mysql>改变表测试添加索引idx_data (data_idx);
查询好,0行影响(0.67秒)
记录:0,重复:0,警告:0
在条件需要使用虚拟列来进行检索,执行计划如下:
mysql>从测试解释select * data_idx='(“3”、“4”)的;
+ - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - +
| | id select_type | | | |表分区类型possible_keys |关键,,,| key_len |裁判,| |行额外过滤| |
+ - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - +
| 1 |简单的祝福;,,测试| |空,,,| ref, | idx_data,,387年,| idx_data |,,| const |,1 |大敌;100.00零,| |
+ - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - +
1行集,警告(0.04秒)
发现走了索引