环境准备

数据库环境: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. 「SDOI2016」储能表(数位dp)
  2. Locations Section of OpenCascade BRep
  3. String path = request.getContextPath()和String basePath = request.getScheme()
  4. 利用python读取栅格数据
  5. 常染色体的隐性疾病数学建模(代数模型)
  6. python神经网络作用_Python · 神经网络(三*)· 网络
  7. 学习之路/免费的图库推荐
  8. 动态规划——骨牌平铺问题
  9. Oracle并行操作——从串行到并行(转)
  10. 前端开发_HTML5_布局-div+css布局
  11. c语言编译器uwp版,哔哩哔哩UWP最新版下载 - 哔哩哔哩UWP版免费版(32位64位win10)安装下载v1.3.10.0 - QT软件园...
  12. 数据驱动进化优化(data-driven evolutionary optimization)
  13. 解决前端 js 中使用 append 动态追加元素标签后,事件和css样式异常问题
  14. Windows10下安装Wamp Server(wamp5_1.7.4)-图文教程
  15. iterate java_ibatis中iterate的用法(conjunction=or ,)
  16. Postman 汉化(Postman中文版我已为您打包一切请放心下载使用)
  17. 爬虫抓取某饿了app商铺的评论数据
  18. [编程题]蓄水池大作战 Golang 面相对象 无需算法 有手就行
  19. c 当前程序的语言,c语言实现获取macos当前的系统语言
  20. matlab 双边沿滤波,一种基于数字PWM发生器的左增长双边沿UPWM信号频谱估计方法与流程...

热门文章

  1. FDM3D打印系列——5、上色和灯光
  2. 小程序填坑之路——文本超出部分隐藏(已解决)
  3. 又到年底了,明年该学点啥呢?
  4. Vscode有什么好用的插件?
  5. @Target、@Retention、@Documented注解简介
  6. SAP-PP知识分享-PP常用表积累
  7. 给mininet安装controller
  8. 宏油庄冒菜加盟优势,该如何控制成本
  9. 入栏需看——全国硕士研究生入学统一考试管理类专业学位联考
  10. Android Observer与Observable