| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> 自定义字段MongoDb与Mysql 扩展表性能分析 -> 正文阅读 |
|
[大数据]自定义字段MongoDb与Mysql 扩展表性能分析 |
1.? 需求背景
????????从上面表格列出的所有方案中折中考虑后,我们选择采用 Mysql EAV模型 或者 Mysql + MongoDb的方案,本文就对这两种方案的性能做一个对比从而确定最终采用的方案。 3. MongDb性能测试 ????3.1 MongoDb 测试表信息
? ? ? 3.2? 测试方案 ??????????3.2.1 ?模糊查询 + 分页 + 不排序
?????????3.2.2?模糊查询+分页+排序 + 排序字段无索引
????????3.2.3? 模糊查询+分页+排序 + 排序字段有索引
?????3.3? Mongo db有无排序以及是否建立合适索引新能对比 ? ? ? ? ?从图上可以看出在有排序并且排序字段建立索引时,无排序比有排序效率提升近一倍,吞吐量也高一倍,但是排序字段没有建立索引时,查询效率已经吞吐量显著降低,并且机器cpu直接打满100%,可见mongo db建立合适的索引也非常重要 4. Mysql 性能测试 ???4.1 mysql主表信息
? 4.2?mysql冗余字段表测试方案 ? ? ? 4.2.1 ?模糊查询 + 分页 + 不排序
? ? ? 4.2.2?模糊查询+分页+排序 + 排序字段无索引
? ? ? 4.2.3?模糊查询+分页+排序 + 排序字段有索引
???4.3 Mysql自定义字段表信息
????4.4?mysql自定义字段表测试方案 ??????4.4.1 模糊查询 + 分页 + 不排序
? ? ? 4.4.2?模糊查询+分页+排序 + 排序字段无索引
? ? ? 4.4.3?模糊查询+分页+排序 + 排序字段有索引
5. Mysql 与 mongo db性能比较 ??????5.1 模糊查询 + 分页 + 不排序 ? ? ? ? ?上图中最小值,平均值以及最大的意义不是很大,我们从90%,95%,99%来看,查询mongodb时的性能只有查询自定义字段表的1/3,只有仅仅查询主表的1/2。效率提升明显。 ????????查询mongoDb的吞吐量(tps):4929.6/s 也远远高于查询自定义字段表的1433.6/s和只查询主表的2558.2/s。 ? ? ? 5.2?模糊查询+分页+排序 + 排序字段无索引 ? ? ? ? ?从图形来看,没有建立索引时效率都很低下,不可取 ? ? ? 5.3?模糊查询+分页+排序 + 排序字段有索引 ????????上图中最小值,平均值以及最大的意义不是很大,我们从90%,95%,99%来看,查询mongodb时的性能与查询字段冗余表表的性能相差不大,但是只有查询自定义表的1/2,效率提升也比较显著 ????????查询mongoDb的吞吐量(tps):2619.6/s 与查询字段冗余表的2728.6/s相差不大,但是远远高于查询自定义字段表的1304.6/s。 6. 总结 ? ? ? ? 从上面分析的结果来看,采用Mongo Db的性能时远优于Mysql EAV模型的,并且此文章里面没有涉及到扩展字段的排序问题,多表联合查询问题,考虑的话效率是更加低于Mongo Db方案,因此考虑到未来一年内的话采用mongo db的方案较优,当然 如果不考虑人工成本的话,迁移的列式存储(clickhouse)是更优方案。 ? ? ? ?采用mongo db的方案,我们需要考虑mysql数据同步到mongo db,一般有两种方案,第一种是双写,第二种是采用cdc实时同步,不过两种方案都需要考虑到数据的一致性,此篇文章暂不涉及这些方案。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/15 20:32:47- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |