MS-SQL如何实现分表查询

时间:2022-10-01 01:58:59
我有5个表,都是通过外键关联的,数据量很大,每个表都差不多上千万条记录,查询一次需要十几分钟,想优化

请问能不能用分表实现,如何实现分表

我的数据没有办法按照时间来分表,因为记录有很多都是集中在一个时间段内的,我的初步想法是按照记录数量来分表
例如,够10W条就建立一张新表,存入下一张。

但是这样做不知道存储的地方如何实现,而且数据在每天0点的时候会清空7天前的记录,分表的话删除起来也会很不方便

谁能给个思路或者基本的实现方法,感激不尽,要切实可行的

8 个解决方案

#1


补充下,如果分表,按什么分,根据什么来判断查询的内容在那张表呢?
表的话  有主键ID  外键  时间   以及   IP  NAME  

#2


按天分表以后就直接drop表 不用delete了
建好索引

#3


引用 1 楼 chouchou2007 的回复:
补充下,如果分表,按什么分,根据什么来判断查询的内容在那张表呢?
表的话  有主键ID  外键  时间  以及  IP  NAME 


看实际业务,如果跟结帐等都没有关系的话,可以用时间
像您说的这个就可以用时间来处理。


#4


按Name来分可否呢

#5


该回复于2010-02-23 16:34:41被版主删除

#6


學習學習。。回复内容太短了! 

#7



建好索引
再来求
可以用SQL 2005 SQL 2008的分区功能

#8


可以按日期分。
然后在外部关联表来维护相关联的ID,
05、08可以利用分区功能

#1


补充下,如果分表,按什么分,根据什么来判断查询的内容在那张表呢?
表的话  有主键ID  外键  时间   以及   IP  NAME  

#2


按天分表以后就直接drop表 不用delete了
建好索引

#3


引用 1 楼 chouchou2007 的回复:
补充下,如果分表,按什么分,根据什么来判断查询的内容在那张表呢?
表的话  有主键ID  外键  时间  以及  IP  NAME 


看实际业务,如果跟结帐等都没有关系的话,可以用时间
像您说的这个就可以用时间来处理。


#4


按Name来分可否呢

#5


该回复于2010-02-23 16:34:41被版主删除

#6


學習學習。。回复内容太短了! 

#7



建好索引
再来求
可以用SQL 2005 SQL 2008的分区功能

#8


可以按日期分。
然后在外部关联表来维护相关联的ID,
05、08可以利用分区功能