G
goaha
Unregistered / Unconfirmed
GUEST, unregistred user!
to mo:
我觉得你有些想法是错误的。
不需要担心sql每个表的数据量,sql的数据量可以很大(几百万条以上)。
当然对数据量大的数据库操作会导致响应速度慢,为了提高响应速度应当从这几方面
考虑:
1、硬件:cpu速度、内存(1G以上)、硬盘(最好用阵列柜)。那么庞大的一个系
统,肯定要在硬件上舍得花点钱。
2、通过对sql的索引进行优化(可使用sql的分析器来进行分析),提高对常用
查询响应速度。
3、把表分开也许会对小范围查询的响应速度会有提高,具体有多大提高,没试过。
如果我来做的话,我会把这些表分成两个,而不是每年一个。一个叫
当前年份xx表,另一个叫历史xx表。每次统计查询时,先判断一下日期范围是否
跨年,如果不跨年就只对当前年份xx表进行查询统计;否则,通过
联合查询(union)把两个表合成一个表进行查询统计。这样做可以达到对最常
用的(当前年的)数据查询统计比较快,又可以达到编程及维护方便的目的。
毕竟跨年度的统计用的次数少,慢一点也没关系。我总觉得每年一个表太麻烦。
希望有更高水平的dfw再来讨论一下。
我觉得你有些想法是错误的。
不需要担心sql每个表的数据量,sql的数据量可以很大(几百万条以上)。
当然对数据量大的数据库操作会导致响应速度慢,为了提高响应速度应当从这几方面
考虑:
1、硬件:cpu速度、内存(1G以上)、硬盘(最好用阵列柜)。那么庞大的一个系
统,肯定要在硬件上舍得花点钱。
2、通过对sql的索引进行优化(可使用sql的分析器来进行分析),提高对常用
查询响应速度。
3、把表分开也许会对小范围查询的响应速度会有提高,具体有多大提高,没试过。
如果我来做的话,我会把这些表分成两个,而不是每年一个。一个叫
当前年份xx表,另一个叫历史xx表。每次统计查询时,先判断一下日期范围是否
跨年,如果不跨年就只对当前年份xx表进行查询统计;否则,通过
联合查询(union)把两个表合成一个表进行查询统计。这样做可以达到对最常
用的(当前年的)数据查询统计比较快,又可以达到编程及维护方便的目的。
毕竟跨年度的统计用的次数少,慢一点也没关系。我总觉得每年一个表太麻烦。
希望有更高水平的dfw再来讨论一下。