前言

最近笔者在工作中遇上一个测试人员通过压力测试反馈的问题。这个问题就是测试人员一下子制造了上千万的数据,造成某个mysql/oracle数据库表产生了500万以上的数据,造成分页查询offset过大的问题。即使查询条件加了索引以及采用懒加载策略,查询速率也还没提升。这里,笔者考虑了几种处理办法:oracle分区、分库分表、nosql法。下面对这几个方法进行表述。

oracle分区法

笔者在以前的公司工作时,遇上了告警数据量过多,超过1千万了,造成分页数据量过慢。当时存储告警的数据是在oracle里面,故数据库管理员采用了分区法,并且加入了定时清除1个月前数据和自动确认历史数据机制来处理。oracle分区法只是按照某个策略对库表进行分区,对于某个策略数量较小的性能是好的,一旦该分区数据量大了,也是治标不治本的。同时分区也是oracle特有的功能,不能兼容mysql。

分库分表法

分库分表与上一个方法很相似,只不过是把表名加入了策略标记,通过分库分表中间件改写对应的sql的库表。和上一个方法一样,一旦一个字表数据量大了,也还是出现慢查询的问题,治标不治本。

nosql法

前面的oracle分区和分库分表法都不能从根本上解决这个超过500万条数据,只是延缓了这个超大量数据查询慢的问题。这里笔者搜索有关淘宝等有类似问题的公司,发现他们用了nosql法来进行处理的。几种nosql能够处理这个500万以上的数据的有Hbase、ElasticSearch、MongoDB、redis这4种。下表是对他们的简单比较。

通过上面的比较而言:redis是不支持复杂条件查询的。es是复杂查询支持很强,但是写入性能很差,不支持事务的,还有最明显的弱点就是字段类型无法修改、高硬件资源消耗。。hbase是支持自动弹性扩容,但是查询效率也是不高的。MongoDB 不需要定义表结构这个特点给表结构的修改带来了极大的方便,但是也给多表查询、复杂事务等高级操作带来了阻碍。

以上的nosql数据库的适用场景:

如果对数据的读写要求极高,并且你的数据规模不大,也不需要长期存储,选 redis;

如果数据规模较大,对数据的读性能要求很高,数据表的结构需要经常变,有时还需要做一些聚合查询,选 MongoDB;

如果需要构造一个搜索引擎或者你想搞一个看着高大上的数据可视化平台,并且数据有一定的分析价值,选 ElasticSearch;

如果需要存储海量数据,并且不知道数据规模将来会增长多么大,那么选 HBase。

超过500万海量数据怎样处理相关推荐

  1. Conflux获上海市政府超过500万美元的研究资助

    1月12日消息,区块链初创企业Conflux获得上海市科学技术委员会和长宁区政府超过500万美元的研究资助.根据上海市科学技术委员会发布的<关于上海市2020年度"科技创新行动计划&q ...

  2. 苹果公司:Apple大中华区的注册开发者数量现已超过500万

    5月26日,据苹果官网消息,2021年,来自世界各地数以万计的小型开发团队涌入App Store,其中23%来自中国内地. "App Store的分发优势让他们创作的app在175个国家和地 ...

  3. mongodb 百万_MongoDB查询性能超过500万条记录

    我们最近为我们的一个主要系列收录了> 2百万条记录,现在我们开始对该系列的主要性能问题感到不满. 它们在集合中的文档有大约8个字段,您可以使用UI过滤,结果应该按记录处理的时间戳字段排序. 我已 ...

  4. 为什么超过500万开发者选择了ASP.NET Core?

    目录 一.What ASP.NET Core? 二.Why ASP.NET Core? 三.为什么选择这项技术? 四.ASP.NET Core的优势具体可以梳理为以下几个方面: 1.生成Web UI ...

  5. 深圳即将启动首届「全国人工智能大赛」:超过 500 万大奖 政府资助,潜信息你读懂了吗!

    深圳即将启动首届「全国人工智能大赛」:超过 500 万大奖 & 政府资助,潜信息你读懂了吗! 人工智能加速"视频/视觉"发展,近期,深圳市即将迎来人工智能领域权威赛事之一- ...

  6. 0226互联网新闻 | “多闪”上线首月iOS下载量超过500万;阿里云MWC 2019发布7款新产品...

    戳戳戳戳一下"好看",你最好看

  7. 教育部:建设100+AI特色专业,500万AI人才缺口要补上!

    AI再次被提上国家级日程! 为落实<国务院关于印发新一代人工智能发展规划的通知>,为我国新一代人工智能发展提供战略支撑,教育部在近日正式发布了<高等学校人工智能创新行动计划>. ...

  8. 服务器500_BTA齐聚新基建——2030年百度智能云服务器数量超500万台

    6月19日,百度官宣将加大新基建领域投资,预计到2030年,百度智能云服务器台数超过500万台.至此,BTA三家老牌云服务商均发布了新基建计划,不论是腾讯的5年5000亿还是阿里的3年2000亿或者是 ...

  9. 教育部:建设100+AI特色专业, 500万AI人才缺口要补上!

    来源:网络大数据 摘要:为落实<国务院关于印发新一代人工智能发展规划的通知>,为我国新一代人工智能发展提供战略支撑,教育部在近日正式发布了<高等学校人工智能创新行动计划>. A ...

最新文章

  1. 提高cube性能的一些方法(一)
  2. c++.net 托管类封装非托管类
  3. flash特效原理:螺旋效果 (3)
  4. Linux mke2fs 硬盘格式化
  5. gh0st支持win7和win8
  6. Asp.Net Core 快速邮件队列设计与实现
  7. LeetCode 2049. 统计最高分的节点数目(DFS)
  8. 二级c语言加油,二级C语言 备考指南及常见问题(2013版)
  9. CGJ02、BD09、西安80、北京54、CGCS2000常用坐标系详解
  10. 2021-10-22 学习笔记:和弦对照信息表
  11. 删除ttf字体文件中无用文字
  12. MOS管的导通电阻RDS(on)与阈值电压VGS(th)温度特性详解
  13. IDR:通过迭代数据细化的自我监督图像去噪
  14. SAP save_text 解决导入物料主数据长文本丢失空格
  15. idea jar包在x-shell 上执行,并使用jara -jar
  16. fiddle无法抓包小程序解答
  17. iOS xxx is missing from working copy
  18. PXE-启动错误代码
  19. vcs dump vpd的方法
  20. linux 自定义欢迎界面 /etc/motd文件

热门文章

  1. LeetCode 496.下个更大的数
  2. bzoj1862 [Zjoi2006]GameZ游戏排名系统
  3. 中考计算机试题,中考微机考试试题.docx
  4. i春秋python_I春秋刷题 WEB篇
  5. [Mysql] CONVERT函数
  6. 合成孔径雷达图像信息处理
  7. 读书笔记3 《运动饮食1:9》 森拓郎
  8. 东财《会计职业道德X》综合作业
  9. SpringCloud源码学习笔记之Eureka客户端——DiscoveryClient接口的层级结构
  10. Ubuntu16 单机 Hadoop3.2.2 Hbase 2.3.5