日期:2014-05-18  浏览次数:20491 次

sql 表数据在一亿条以上 怎么优化
假设表A数据经过一年后达到一亿 如何优化

听别人说 数据库有这个功能,可以把历史的分开例如表中只存最近一个月的 

但是查询表A的 还能查到一个月以前的 

大概意思就是这个 会的帮帮忙 不会的帮顶下

------解决方案--------------------
说的是分区表,看看联机丛书吧。
------解决方案--------------------
如果一年前的只是备份待查,分离出来另存.
如果一年前的会用到,但用得少,用分区.
如果一年前的仍然要频繁使用,用分区,但要加一个磁盘.
------解决方案--------------------
以主键水平分割表!
------解决方案--------------------
联机丛书
------解决方案--------------------
探讨

经楼上几位回答查找的相关资料 可以解决问题
http://msdn.microsoft.com/zh-cn/library/ms345146(d=printer,v=SQL.90).aspx

http://topic.csdn.net/u/20091021/16/ed85f7f6-1d92-478b-80fd-6661261baedc.html

http://msdn.micros……

------解决方案--------------------
如果交易(新增)业务不涉及旧数据,可以把旧数据自动搬移到另一个表甚至另一个库或另一个服务器
历史表会很大,但是只查询,而且不在一个表、库、服务器,基本不影响交易

如果交易要求旧数据存在,则不用分开,直接把A表改为分区表
------解决方案--------------------
如果是日志数据(随时间增长必然会增长的),分表是必然的,因为总有大到没法运行的一天,分区表只能是个辅助,对其作用不要期望太高
------解决方案--------------------
上亿条是一定要分区的,如果是2000的话你可以分表管理,如果是2005或以上你就做一个水平分区就ok了。
------解决方案--------------------
历史数据太多的话 就需要分库 甚至分服务器。
------解决方案--------------------
历史数据太多的话 就需要分库 甚至分服务器。

------解决方案--------------------
另外分一个历史库出来