mysql json数据格式的查询性能测试
环境准备
数据库环境:mysql 5.7.20
数据准备:
1 . test_json表,存储10万行数据,每行数据的json列值为10个元素的json数组
- test_varchar_index表,存储100万条数据,不包含json列,并且不针对列建立索引
- 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();
测试
查询指定值的 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数据格式的查询性能测试相关推荐
- MongoDB与MySQL的插入、查询性能测试
转载自:http://blog.csdn.net/clh604/article/details/19608869 1.1 MongoDB的简单介绍 在当今的数据库市场上,MySQL无疑是占有一席之地 ...
- MySql 5.7 json数据格式 增删改查 操作 (不定时更新)
2019独角兽企业重金招聘Python工程师标准>>> 测试的表的结构如下: CREATE TABLE `userinfo` (`id` int(11) NOT NULL,`user ...
- sql查询结果转化为JSON数据格式
分析: 查询结果转换成json需要经过两个步骤,首先将查询结果转成XML数据,然后通过XML数据转成json.代码部分来源于网上. 一.查询结果转为XML //其中@ParameterSQL为要查询的 ...
- Ajax---使用json数据格式输出数据
将Ajax得到的数据使用json数据格式输出 1.项目清单 2.代码 2.1.Procince类代码 2.2.ProvinceDao类代码 2.3.QueryJsonServlet类代码 2.4.Te ...
- Mysql Json格式
Mysql Json格式 提示:学习笔记 mysql5.7后提供的一种反范式数据格式,非常适合代替MoungoDB 前言 Mysql提供的Json数据格式,约束性小,不俗的查询性能 一.应用场景 如文 ...
- mysql json php 直接使用_PHP面试题大全(值得收藏)
php中文网最新课程 每日17点准时技术干货分享 相关推荐:<2019年PHP面试题大汇总(收藏)> 一 .PHP基础部分 1.PHP语言的一大优势是跨平台,什么是跨平台? PHP的运行环 ...
- XML和JSON数据格式对比
概念 XML 扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语 ...
- mysql json类型数组索引_MySQL JSON 类型数据操作
1.Java 中动态扩展字段,会导致数据库表被锁,在MySQL 5.7.8版本之前,因为MySQL不能直接操作JSON类型数据,可以将一个字段设定成varchar类型,里面存放JSON格式数据,这样在 ...
- mysql json 函数_MYSQL 开发设计表是硬邦邦的VARHCAR 还是JSON TYPE 来处理数据更香
开发在使用MySQL中,建立比较大的VARCHAR字段来存储SQL执行的语句或者利用MYSQL 来存储什么VARCHAR(1000) VARCHAR(2000) 之类的事情比比皆是,实际上存储超高的字 ...
最新文章
- 「SDOI2016」储能表(数位dp)
- Locations Section of OpenCascade BRep
- String path = request.getContextPath()和String basePath = request.getScheme()
- 利用python读取栅格数据
- 常染色体的隐性疾病数学建模(代数模型)
- python神经网络作用_Python · 神经网络(三*)· 网络
- 学习之路/免费的图库推荐
- 动态规划——骨牌平铺问题
- Oracle并行操作——从串行到并行(转)
- 前端开发_HTML5_布局-div+css布局
- c语言编译器uwp版,哔哩哔哩UWP最新版下载 - 哔哩哔哩UWP版免费版(32位64位win10)安装下载v1.3.10.0 - QT软件园...
- 数据驱动进化优化(data-driven evolutionary optimization)
- 解决前端 js 中使用 append 动态追加元素标签后,事件和css样式异常问题
- Windows10下安装Wamp Server(wamp5_1.7.4)-图文教程
- iterate java_ibatis中iterate的用法(conjunction=or ,)
- Postman 汉化(Postman中文版我已为您打包一切请放心下载使用)
- 爬虫抓取某饿了app商铺的评论数据
- [编程题]蓄水池大作战 Golang 面相对象 无需算法 有手就行
- c 当前程序的语言,c语言实现获取macos当前的系统语言
- matlab 双边沿滤波,一种基于数字PWM发生器的左增长双边沿UPWM信号频谱估计方法与流程...