我们拥有一个巨大的表,两千多万条记录。也许在行家眼里,两千多万条记录顶多算条毛,不过这条毛也忒粗壮了一点:我们的数据库占用的空间已经达到5G多了。不要以为是日志文件在搞鬼,日志文件可以自动收缩的,最多不超过100M。

这样子就给我们备份、同步带来很大的麻烦。备份、压缩、下载,谁见谁害怕。

昨天想了个办法,将这个巨无霸分出去了。分到了另一个数据库上。虽说有这么多记录,不过这些记录并不是太重要,如果放在一个分布式的系统里面看,它没有同步的必要。

思想如下:

1、将大表转移到另一个数据库上

2、原有数据库建立一个视图,相同结构,相同名字

由于该视图是单表视图,结构跟表又一致,名字也跟表名一样,那么操作这个视图,无论是查询、插入、更新或删除,都跟直接操作这个表没什么区别。这样代码也无须做任何的修改。平滑过渡。

该表上建立的索引,视图也一样的使用。

以前我见过有人为了避免某个表过大,采用的方法是建立12个结构一样的表,每个月用一个。当时就想,这种做法好是好,但代码岂不是烦死了。现在想起来,查询的时候,可以使用视图将12个表用 UNION ALL 结合起来,当一个表用。

视图在分布式数据库中使用应该很方便。

最新文章

  1. spring笔记--依赖注入之针对不同类型变量的几种注入方式
  2. 关于TextView的setText()与Integer之间一个易犯的小错误
  3. Android使用SAX解析XML(6)
  4. linux库列表
  5. 匹配img和a
  6. 从官方下载 Bootstrap 版本 并写 第一个页面
  7. SPRING IN ACTION 第4版笔记-第七章Advanced Spring MVC-001- DispatcherServlet的高级配置(ServletRegistration.Dynamic、WebApplicationInitializer)
  8. ServletConfig
  9. 基本HTML5文件结构
  10. 1624: [Usaco2008 Open] Clear And Present Danger 寻宝之路
  11. 团队作业4——第一次项目冲刺(Alpha版本) 2017.4.23
  12. 负载均衡手段之DNS轮询
  13. bzoj 1189 紧急疏散 网络流
  14. 使用POST下载文件
  15. C++/cli中swtich处理命令行接收到的关键字
  16. python3之Django基础篇
  17. 模块化&os&sys
  18. /var/run/dbus/system_bus_socket no such file or directory
  19. CXF生成调用webservice的客户端
  20. nodejs入门开发与常用模块

热门文章

  1. 安装和使用iOS的包管理工具CocoaPods
  2. 使用一般处理程序(IHttpHandler)制作图片水印
  3. TZOJ 4813 机器翻译(模拟数组头和尾)
  4. Excel单元格内容批量加前缀
  5. iOS - OC - 打印信息 - xcode 中文打印
  6. [leetcode]367. Valid Perfect Square验证完全平方数
  7. apache中开启rewrite
  8. silverlight的Datagrid控件列绑定属性笔记
  9. TeamCity+Rancher+Docker实现.Net Core项目DevOps(目前成本最小的DevOps实践)
  10. loadrunner12-查看controller运行报错详细log