MongoDb企业应用实战(一) 写在MongoDB应用介绍之前(ii)
上一篇: MongoDb企业应用实战(一) 写在MongoDB应用介绍之前(i)
有段时间没跟大家去分享和探讨过一些问题,分享过一些经验了(失败过的,痛苦过的才最有看点啊,不知道各位同仁们怎么去看这个问题?)。接着跟大家唠叨唠叨。
且说6年前,那段千万数据级别刻骨铭心的经历,让我真正意识到一个好的产品或者是一个好的软件系统是需要不断的提炼,优化,改进,检验,再改进。这才能够一举奠定它在市场中的地位和价值(6年前,与其说那是项目,到不如说是一个完整的自动识别行业的解决方案。(i)高速传送带,(ii)高速成组扫描设备,(iii)条形码打印机,(iv)自动剔除气缸,(v)手持终端[PDA],(vi)高速成像设备,十八般兵器悉数登场,才构筑了后来了全国400多家企业级客户,据最近我当年的那位带头大哥介绍,现在都在那套系统已经安装到一些欧美在华的企业车间中了,他们又弄出了国际版了。)。
接上回:我和我的项目经理回到上海总部后对系统升级改进解决方案
如果单表数据量过多,有什么好的思路呢?我在6年前那段时间真心觉着一些解决问题的办法或者思路太重要了。按照今天大家的官方说法是软件系统中的设计思想太重要,一个好的架构太重要了。如果是几个人或者几十个人的用户,抑或是一天几百条,几千条数据,简单的写写,不谈什么软件设计,不谈什么数据库设计,问题也能解决。但终归大家都能解决的那就没什么含量了,也体现不出来一个项目经理或者是项目中的核心灵魂人物的价值了。
话说我的项目经理到现场一看,毕竟是久经IT战场,迅速的提出解决问题的办法。当时他在我的心目中正如下面这则小故事中说的那个物理学家:
"有一台价值数百万的精密设备故障,怎么搞都没办法,最后一位物理学家说他行,开价十万美元。没办法,答应了。物理学家在图纸上划了一根线,说查这。结果真好了。老板一看一根线就十万,想赖账。物理学家说了一句话:划一根线一美元,知道在哪划线值九万九千九百九十九美元。老板一听,让人付钱。"
他知道从哪里划线,并且是属于一阵见血式的,那就聊聊当时的一些做法,大家如果看到这篇文章,有什么好的想法,好的做法,也欢迎大家不吝赐教。
(i) 根据数据的状态,重新划分使用过的和没使用过的数据。
(ii)没有使用过的数据,按照数据产生的月份迁移到对应月份的数据库表中。
(iii) 建立生产库的历史备份库,将生产库的中已上传至国家监管平台的数据备份至历史库中。
(iv)改进软件,针对查询数据部分,分为当前生产库查询和历史数据查询。
(v)改进新库创建为每一新年手动创建,根据时间判断自动创建,并同步迁移上一年没有使用过的数据。
其实我在后来一些项目中发现6年前的做法,在6年后这个办法依旧不过时。最近跟一个资深的Oracle DBA聊到他在 Oracle中数据的备份和优化策略时,发现他也是采取类似的方式去处理。
(i)对Oracle建立水平分区表,将一个完整的表中的数据存储到不同的数据空间中。
(SqlServer也可以做水平分区表,当时考虑到那是一个全国性的项目,只是采取了更容易维护的方式,自动创建对应数据库,自动创建表结构,这样整个系统的维护成本更低,也能够真正做到替用户着想,不是每个企业都专门去养一帮很N叉的开发,运维人员。)
(ii)每隔6个月,迁移6个月前的数据至历史备份库中。(跟6年前我们的数据库维护策略如出一辙。)
各位同仁们:但是6年前,我怎么能够理解到这种开发或者运维的思想呢?一上来开始写复杂的存储过程我就觉着自己很N了,多年后回想起来这其实没什么哦。现在ORM,LINQ,甚至是NoSql的产品也都用上了,也没有觉着自己有多么N叉哦。只是真心觉着这么6年来的持续的学习,保持着的持续学习状态让我受益匪浅。另外看待一些问题,思考一些问题也更加接地气,更加靠谱些了。想起来了那句话:"最困难的事情是了解自己 最不容易的事情是欣赏自己。"
2014 新的一年真的需要对自己有一个更加理性的认识。
MongoDb企业应用实战(一) 写在MongoDB应用介绍之前(ii)的更多相关文章
- MongoDb企业应用实战(一) 写在MongoDb应用介绍之前(i)
故事背景: 本人有幸,经老友( 现为x知名快递公司技术总监 ) 推荐进入中国前三大民营快递公司之一工作,在此非常感谢他,在此也非常感谢我在第一家公司帮助我进步的兄弟(我在时的项目经理,现为 x 知名 ...
- 轻量级Java EE企业应用实战:Struts2+Spring5+Hibernate5/JPA2
轻量级Java EE企业应用实战(第5版)——Struts 2+Spring 5+Hibernate 5/JPA 2整合开发是<轻量级Java EE企业应用实战>的第5版,这一版保持了前几 ...
- MongoDB实战指南(四):MongoDB的Journaling日志功能
mongoDB的Journaling日志功能与常见的log日志是不一样的,mongoDB也有log日志,它只是简单记录了数据库在服务器上的启动信息.慢查询记录.数据库异常信息.客户端与数据库服务器连接 ...
- 跟我一步一步写出MongoDB Web 可视化工具(一)
前言 距离上一次写博客,已经不记得大概有多长时间了, 是时候继续前行了... MongoStudio 是一个Web的 MongoDB可视化操作工具, 一年半前已经写好, 但是总觉得不足, 现从头开始. ...
- python操作三大主流数据库(10)python操作mongodb数据库④mongodb新闻项目实战
python操作mongodb数据库④mongodb新闻项目实战 参考文档:http://flask-mongoengine.readthedocs.io/en/latest/ 目录: [root@n ...
- Mongodb 集群实战
该实战过程完全跟着官网一步一步实现 ,官网教程:https://docs.mongodb.com/manual/tutorial/atlas-free-tier-setup/ 使用Mongo Shel ...
- MongoDB Spark Connector 实战指南
Why Spark with MongoDB? 高性能,官方号称 100x faster,因为可以全内存运行,性能提升肯定是很明显的 简单易用,支持 Java.Python.Scala.SQL 等多种 ...
- Spring Batch 读 10 万条记录,写到 MongoDB
实践内容 从 MariaDB 一张表内读 10 万条记录,经处理后写到 MongoDB . 具体实现 1.新建 Spring Boot 应用,依赖如下: <!-- Web 应用 --> & ...
- 《Node+MongoDB+React 项目实战开发》已出版
前言 从深圳回长沙已经快4个月了,除了把车开熟练了外,并没有什么值得一提的,长沙这边要么就是连续下一个月雨,要么就是连续一个月高温暴晒,上班更是没啥子意思,长沙这边的公司和深圳落差挺大的,薪资也是断崖 ...
随机推荐
- Android编译命令
目录 说在前面 编译流程 编译指令 代码编译 代码检索 其他指令 说在前面 从最开始接触Android系统开始,每次进行代码编译都需要网上搜索编译指令.后来大致熟悉了Android的编译体系,加深了对 ...
- 决策树&随机森林
参考链接: https://www.bilibili.com/video/av26086646/?p=8 <统计学习方法> 一.决策树算法: 1.训练阶段(决策树学习),也就是说:怎么样构 ...
- linux mint系统 cinnamon桌面 发大镜功能
让我来告诉迷途中的你cinnamon桌面一个好用的功能. 选择设置 选择窗口 -> 选择行为 看那个窗口移动和调整大小的特殊键 Alt 好了按住alt在滑动滑轮 世界不一样了 对于小屏幕高分辨率 ...
- 2018南京网络赛L题:Magical Girl Haze(最短路分层图)
题目链接:https://nanti.jisuanke.com/t/31001 解题心得: 一个BZOJ的原题,之前就写过博客了. 原题地址:https://www.lydsy.com/JudgeOn ...
- (转)Gmail,你必须了解的12个邮件编码问题
转载地址:http://www.maildesign.cn/archives/1537 1.Gmail 不支持style=” display:none”2.Gmail不支持内嵌式CSS样式3.Gmai ...
- 180709-Java实现获取本机Ip的工具类
180709-Java实现获取本机Ip的工具类 获取本机Ip算是比较常见的一个需求场景了,比如业务报警,可能就会带上出问题的机器IP,方便直接上去看日志定位问题,那么问题来了,如何获取机器IP呢? I ...
- 180706-BigDecimal除法的精度问题
BigDecimal除法的精度问题 在使用BigDecimal的除法时,遇到一个鬼畜的问题,本以为的精度计算,结果使用返回0,当然最终发现还是自己的使用姿势不对导致的,因此记录一下,避免后面重蹈覆辙 ...
- Monkey用真机做测试的步骤
1 必备条件 1) 手机需要先获取root权限: 2) 手机和电脑相连(电脑可以访问手机里面的文件) 2 操作步骤 1) 使用adb devices 命令查看电脑手机是否相连: 下图表示手机已连上电 ...
- Linux命令应用大词典-第42章 PostgreSQL数据库
42.1 initdb:初始化PostgreSQL数据库 42.2 pg_ctl:控制PostgreSQL服务 42.3 psql:PostgreSQL交互式客户端工具 42.4 createdb:创 ...
- Unity制作人物头像小图标和小地图
人物头像的制作: 在场景中添加人物模型和环境模型 设置人物的layer为Player 在主摄像机的基础上,新建一个次摄像机并将摄像机镜头对准人物面部,调整至合适大小. 设置次摄像机 culling m ...