环境准备

数据库环境:mysql 5.7.20

数据准备:

1 . test_json表,存储10万行数据,每行数据的json列值为10个元素的json数组

  1. test_varchar_index表,存储100万条数据,不包含json列,并且不针对列建立索引
  2. test_varchar_noindex 表,存储100万条数据,不包含json 列,但建立索引

数据脚本如下:

delimiter $$
drop procedure if exists varcharDataready;
create procedure varcharDataready()
BEGIN
declare i int(11);
set i = 1;
WHILE i <= 1000000 do
insert INTO test_varchar_index(name) VALUES(REPLACE(UUID(),'-',''));
insert INTO test_varchar_noindex(name) VALUES(REPLACE(UUID(),'-',''));
set i = i + 1;
end WHILE;
end $$drop procedure if exists dataready;
create procedure dataready()
BEGIN
declare i int(11);
set i = 1;
WHILE i < 100000 do
insert INTO test_json(name) VALUES(JSON_ARRAY(REPLACE(UUID(),'-',''),
REPLACE(UUID(),'-',''),
REPLACE(UUID(),'-',''),
REPLACE(UUID(),'-',''),
REPLACE(UUID(),'-',''),
REPLACE(UUID(),'-',''),
REPLACE(UUID(),'-',''),
REPLACE(UUID(),'-',''),
REPLACE(UUID(),'-',''),
REPLACE(UUID(),'-','')
));
set i = i + 1;
end WHILE;
end $$
delimiter ;CALL varcharDataready();
call dataready();

测试

  1. 查询指定值的 name 列:

    • 查询 test_json 表:

      SELECT id FROM test_json where JSON_CONTAINS(name -> '$[*]','["e705da2cd3bd11e986f6e0d55ea04e32"]')# 运行结果 0.8s左右(多次运行)
      
    • 查询 test_varchar_noindex

      select id from test_varchar_noindex where name = 'e7056b78d3bd11e986f6e0d55ea04e32'
      # 运行结果 0.3s左右(多次运行)
      
    • 查询 test_varchar_index

      select id from test_varchar_index where name = '000255bdd3bd11e986f6e0d55ea04e32'
      # 运行结果 0.02s左右(多次运行)
      

研读了一下mysql json列建立索引是需要创建虚拟列的,由于这里的数据用的是json 数组,就没法去做了。创建虚拟列应该是针对的json 对象吧,这个需要多考虑考虑表的设计了。

如果你觉得我的文章对你有所帮助的话,欢迎关注我的公众号。赞!
认认真真学习,做思想的产出者,而不是文字的搬运工。错误之处,还望指出!

mysql json数据格式的查询性能测试相关推荐

  1. MongoDB与MySQL的插入、查询性能测试

    转载自:http://blog.csdn.net/clh604/article/details/19608869 1.1  MongoDB的简单介绍 在当今的数据库市场上,MySQL无疑是占有一席之地 ...

  2. MySql 5.7 json数据格式 增删改查 操作 (不定时更新)

    2019独角兽企业重金招聘Python工程师标准>>> 测试的表的结构如下: CREATE TABLE `userinfo` (`id` int(11) NOT NULL,`user ...

  3. sql查询结果转化为JSON数据格式

    分析: 查询结果转换成json需要经过两个步骤,首先将查询结果转成XML数据,然后通过XML数据转成json.代码部分来源于网上. 一.查询结果转为XML //其中@ParameterSQL为要查询的 ...

  4. Ajax---使用json数据格式输出数据

    将Ajax得到的数据使用json数据格式输出 1.项目清单 2.代码 2.1.Procince类代码 2.2.ProvinceDao类代码 2.3.QueryJsonServlet类代码 2.4.Te ...

  5. Mysql Json格式

    Mysql Json格式 提示:学习笔记 mysql5.7后提供的一种反范式数据格式,非常适合代替MoungoDB 前言 Mysql提供的Json数据格式,约束性小,不俗的查询性能 一.应用场景 如文 ...

  6. mysql json php 直接使用_PHP面试题大全(值得收藏)

    php中文网最新课程 每日17点准时技术干货分享 相关推荐:<2019年PHP面试题大汇总(收藏)> 一 .PHP基础部分 1.PHP语言的一大优势是跨平台,什么是跨平台? PHP的运行环 ...

  7. XML和JSON数据格式对比

    概念 XML 扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语 ...

  8. mysql json类型数组索引_MySQL JSON 类型数据操作

    1.Java 中动态扩展字段,会导致数据库表被锁,在MySQL 5.7.8版本之前,因为MySQL不能直接操作JSON类型数据,可以将一个字段设定成varchar类型,里面存放JSON格式数据,这样在 ...

  9. mysql json 函数_MYSQL 开发设计表是硬邦邦的VARHCAR 还是JSON TYPE 来处理数据更香

    开发在使用MySQL中,建立比较大的VARCHAR字段来存储SQL执行的语句或者利用MYSQL 来存储什么VARCHAR(1000) VARCHAR(2000) 之类的事情比比皆是,实际上存储超高的字 ...

最新文章

  1. bezier曲线_Bezier算法
  2. 编程之美-最短摘要的生成方法整理
  3. 2021-10-7 !二叉树的层序遍历
  4. android 布局: LinearLayout如何使TextView中的内容居中显示
  5. C++17下map不常用的接口函数汇总
  6. Vue + webpack 项目配置化、接口请求统一管理
  7. 移动端line-height与height相同文字不居中
  8. transact-sql_如何使用Transact-SQL创建,配置和删除SQL Server链接服务器
  9. Flutter实战一Flutter聊天应用(七)
  10. 9.高性能MySQL --- 操作系统和硬件优化
  11. 【C++游戏】日常学生党摸鱼小游戏——职业作秀V1.5.1(图文英雄解说攻略)游戏由c++与易语言配合完成
  12. adt变频器故障代码ol2_英威腾变频器故障代码表
  13. css 居中对齐在实现方式
  14. PKI体系(公钥基础设施)
  15. Java生成二维码图片,手机软件扫码后跳转网页
  16. 因果推断 | 因果关系推断-系列电子书资源
  17. 社团划分评估-标准化互信息NMI的Python实现
  18. 1579. 保证图可完全遍历
  19. 遏制阿里,还是卖音箱?谷歌5.5亿美元投资京东被指借道回归中国
  20. 【Python小竞赛】ARIMA算法预测三日后招商银行收盘价

热门文章

  1. MySQL 交集查询函数实现
  2. 2021小米6无人直播手机刷机教程
  3. UIday1102:UITabelView 3 cell的混合使用代码举例
  4. 搭建powerpc交叉编译工具链
  5. java nba2009,关于一个NBA球队连续夺冠的SQL查询问题,解法很精妙~
  6. 宏油庄冒菜加盟优势,该如何控制成本
  7. 计算机大专毕业论文选题和论文提纲,急!!计算机论文提纲怎么写
  8. python 下划线转驼峰,Go语言json编码驼峰转下划线、下划线转驼峰的实现
  9. 2D游戏vs3D游戏
  10. 高级语言虚拟机(HLL VM)的设计与实现