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

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

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

思想如下:

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

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

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

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

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

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

更多相关文章

  1. win7上python2.7连接mysql数据库
  2. 求VB.net2010做一个简单数据库系统具体操作(用SQL SERVER2008)
  3. Web开发实战学习(涉及EL表达式,JSTL,数据库)
  4. 关于使用大型数据库,我需要了解什么?
  5. 在sdCard创建数据库(打造自己的SQLiteOpenHelper)
  6. Asp.net中Web.config连接字符串及配置数据库sqlserver .
  7. 数据库Mysql的学习(一)
  8. 使用 pymysql 操作MySQL数据库
  9. 使用plsql访问远程数据库

随机推荐

  1. C#中二分法查找的入门(代码介绍)
  2. C#与.net框架之间的关系是什么?C#程序的开
  3. .NET Core中如何使用Entity Framework操
  4. c#是什么?有什么用?
  5. 浅谈.NET Core开发日志中Edge.js是什么?如
  6. 如何用C语言计算矩形的周长和面积?(附代码)
  7. C#执行原理深入解析(图文)
  8. C#如何冒泡排序?冒泡排序程序的编写
  9. C#如何使用 OleDbConnection 连接读取Exc
  10. C#如何连接数据库?OleDbConnection与SqlCo