创建千万级记录的数据库,该注意什么?请各位高手给点建议.不胜感激.
我在做一个数据库,数据处理能力的要求不高,只是数据量太大,一年超过1000万条,我从未作过这么大数据量的数据库,不知该注意什么,请各位高手不吝赐教!在此多谢! 问题点数:100、回复次数:44Top
1 楼pengdali()回复于 2002-11-23 16:42:57 得分 5
一定要建簇索引!
在查循时最好扫描簇索引!
每月进行完全备份!
建立统计表,尽量减少随时完全统计!Top
2 楼hjhing(winding)回复于 2002-11-23 16:46:25 得分 2
1:这1000万数据都是长用数据吗
如果不是请尽量分成历史数据表和常用数据表
如果都是常用数据
也建议按类型分成多表
将数据分散
这样对你数据操作时候的性能会有所保证
2:create index
Top
3 楼pengdali()回复于 2002-11-23 17:16:44 得分 5
建立数据仓库是最好的!Top
4 楼Steve_csdn()回复于 2002-11-23 20:01:21 得分 2
1.认真建索引
2.可以考虑流通库和历史库结合的方案Top
5 楼xuyi3300(阿三)回复于 2002-11-23 20:41:29 得分 2
按常用表和不常用表对数据库分区
Top
6 楼rex_wang(王)回复于 2002-11-24 18:16:10 得分 0
我的数据不常用,而且都是短数据,请各位高手继续指点,12月1日结帖.Top
7 楼hn_ly(游鱼)回复于 2002-11-24 18:27:39 得分 2
肯定是要建索引的,而且不能建的太多,最好建一个簇索引再建几个非簇索引以减少数据表的热点,
把数据表分成二个表,再建一个视图来查询Top
8 楼colderboy(colderboy)回复于 2002-11-26 08:05:45 得分 0
对不起,问个非常低能的问题,簇索引如何创建????Top
9 楼pvistely(晒屁屁)回复于 2002-11-26 09:42:54 得分 0
gzTop
10 楼THXK(THXK)回复于 2002-11-26 10:18:51 得分 0
最好买正版,不行的时候,还可以骂骂微软解恨!Top
11 楼caixiaofei(天天呆在这)回复于 2002-11-26 10:31:29 得分 2
CREATE [ UNIQUE ] [ CLUSTERED | NONCLUSTERED ] INDEX index_name
ON { table | view } ( column [ ASC | DESC ] [ ,...n ] )
[ WITH < index_option > [ ,...n] ]
[ ON filegroup ]
< index_option > ::=
{ PAD_INDEX |
FILLFACTOR = fillfactor |
IGNORE_DUP_KEY |
DROP_EXISTING |
STATISTICS_NORECOMPUTE |
SORT_IN_TEMPDB
}
听说簇索引在增加,删除的时候会影响速度。有没有这个问题Top
12 楼CrazyFor(冬眠的鼹鼠)回复于 2002-11-26 11:14:08 得分 0
不建议用SQL SERVER,百万级的处理还是可以的,但要是经常处理的数据控制不在百万级就最好不用SQL SERVERTop
13 楼sword_hero(sword)回复于 2002-11-26 11:44:24 得分 0
55Top
14 楼byrybye(阿水)回复于 2002-11-26 12:39:21 得分 2
换硬件,真的,
我现在就是用SQL处理大量数据。
效率我是 想不出什么办法能提高。
楼上个为的方法,我试过,
但 并不明显。
升级硬件唯一有效的方法。
最后是4路CPU就可以了,Top
15 楼Nizvoo()回复于 2002-11-26 13:28:13 得分 0
学习Top
16 楼ziyue(紫月)回复于 2002-11-26 15:07:57 得分 0
要4路CPU呀。Top
17 楼coolbily(Gavin Zhang)回复于 2002-11-26 16:04:04 得分 2
oracle 多线程,建议 >=8 cpuTop
18 楼byrybye(阿水)回复于 2002-11-26 16:05:06 得分 2
我认为要4路,应该可以了,
应为我现在是2路800,
好象还挺吃力,当然,
它还承担别的事Top
19 楼rex_wang(王)回复于 2002-11-26 18:35:51 得分 0
那我的成本岂不是要高出很多!!Top
20 楼Hi_greece(无招胜有招)回复于 2002-11-27 08:44:09 得分 5
分成业务数据库和统计数据库,统计数据周期性更新
注意:
1.两个数据库数据的一直性
2.建立索引
3.master数据库优化
硬件:
我就不说了吧,有多少银子,就看着办把
Top
21 楼Drate(小虫(好好学习,天天向上))回复于 2002-11-27 08:57:53 得分 2
还是换成ORACLE的数据库吧,ORACLE在处理大容易数据的时候优势就会体现出出来了!Top
22 楼sdzjx(Mr zhu)回复于 2002-11-27 09:38:02 得分 2
1、可以考虑分区视图
2、优化索引
3、如果更新频繁,注意索引不要太多
Top
23 楼chfhy(春风化雨)回复于 2002-11-27 10:26:52 得分 0
分区视图能够像oracle分区表功能吗
Top
24 楼waxmly(我爱喜玛拉雅)回复于 2002-11-27 10:31:26 得分 0
不好意思,问一个比较弱智的问题
你们常说的数据库有多少记录,是怎么判断的?
或者说是指数据库中记录最多的一个表的记录数还是数据库中所有表的记录数目的总和?Top
25 楼Chinatosun(继续努力 UML系统分析 )回复于 2002-11-27 11:30:50 得分 2
升级硬件是一种方法,管理好DBMS 和 编好程序也很重要。Top
26 楼hawk_yin(hawk)回复于 2002-11-27 15:12:40 得分 0
gz
Top
27 楼hsl616(hsl18)回复于 2002-11-27 21:00:05 得分 0
我是一个计算机新手,谁能告我SQL service是怎么回事。怎么使用它做东西。
一个软件象(学生管理系统,商店管理系统等)。Top
28 楼zjgood(flash)回复于 2002-11-27 21:23:47 得分 3
我还是同意对数据进行分散,这样能很好的提高查询效率Top
29 楼zbc(修身养息,百战不怠)回复于 2002-11-27 21:57:20 得分 0
这么大的数据量??学习学习!!Top
30 楼china_hfz(江夏)回复于 2002-11-27 22:24:29 得分 0
听说项新集团的数据量是每天1.5G的生长,用的也是SQL SERVER,不过它的服务器是带有18CPU的。Top
31 楼tpwang(ping)回复于 2002-11-27 23:49:48 得分 15
一:首先将数据的进行合理分段, 可将其分为历史与常用表;
再将数据纵向分段,即按年或月分段(比较简单,但性能提升不大),或将数据横向分段(比较复杂,但性能提升具大),即按某个关键字(该关键字与产生的时间无关)进行分段;
二:数据分段后必须建立合理的索引.
三:为进一步提高处理性能,可将分段后的数据存放在多台服务器上,用外部程序按分段逻辑去分别调用,或用MS的DTS进行分布调用或用MS-SQL内部的远程服务器调用进行关联表连接进行调用。
四:因为你用的是MS-SQL,只能使用PC服务器了,提高PC服务器处理性能,光靠加CPU是不行的,海量数据的简单运算主要是提磁盘的IO能力,应使用高性能的存储设备是关键。
Top
32 楼jery_lee(U2-G2000)回复于 2002-11-28 00:03:06 得分 0
按照第三范式!设计!Top
33 楼kindtoadsd(南阳山人)回复于 2002-11-28 08:28:41 得分 0
我用的是MS SQL7.0, 一个表超过10万条记录速度就慢的不行。Top
34 楼yzt001(yzt001)回复于 2002-11-28 09:20:53 得分 0
gz
Top
35 楼Ericsson()回复于 2002-11-28 11:17:37 得分 0
gz
Top
36 楼OSNC_17()回复于 2002-11-28 11:24:14 得分 0
注意招聘信息,你随时可能炒掉。Top
37 楼czzw(山水)回复于 2002-11-28 11:42:31 得分 5
我在做的东西和你类似的,其实也就是如何规划和组织相关的数据结构,这么大的记录集,完全按照所谓的范式去做基本上是不合适的。因为这么多的数据集不会被一次查出,而且肯定是多年累计得出的结果。并且数据不会是实时生成的东西。Top
38 楼herocloud(herocloud)回复于 2002-11-28 13:55:31 得分 15
内模式上:分成若干存储块,不同存储块最好存储在不同的IO设备,利用不同的IO设备读取数据的并发。
模式上:将数据纵向,横向分割。(可根据“时间”,“主键”,“逻辑一致”视情况定)
外模式上:可自建分区表,只查询指定区域的数据。
Top
39 楼rex_wang(王)回复于 2002-11-28 20:04:20 得分 0
多谢,多谢.请各位继续关注.Top
40 楼coolbily(Gavin Zhang)回复于 2002-11-29 08:34:04 得分 0
关注ingTop
41 楼outspace(不舍)回复于 2002-11-29 09:15:28 得分 15
建立索引的字段最好和查询统计的条件字段一样,否则你的查询统计会让人感觉象死机。我以前处理过几百万记录的,索引没有建正确,查询统计一次要好几个小时,根本受不了,后来请教高人重新建立索引后性能数量级提高。多研究下索引吧;
另外锁的问题,如果你就只是查询统计,建议你还是用 NOLOCK方式;
表间的关联越少性能越好,不要为了做到××范式把表之间做得千丝万缕的,存储空间是不值钱的,要增加很容易,而CPU很难在已经有的机器上增加,4路已经是普通客户能够接受的顶线了,用空间换时间、性能也是一种很好的策略。
数据库用MSSQL7、2000没有问题,不要怀疑MS连这点都做不到,主要还是考虑自己的应用,不会做你用DB2、ORACLE一样歇菜。当然更好的是DB2、ORACLE(可以放在UNIX下跑啊,而最好的机器现在好像都是UNIX系列的吧,高端服务器现在也是UNIX下为主)。Top
42 楼5lin()回复于 2002-11-30 08:31:37 得分 0
to outspace
不知道您试过mssql2000上千万记录后作一次查询的时间(经过你的方法进行了优化)。我们目前正在论证一个这样级别的项目,不知能上mssql2000.Top
43 楼Steve_csdn()回复于 2002-11-30 23:37:25 得分 5
当然能了,因为我们这里这样级别的项目很多用的是sybase,
mssql2000不会比sybase差很多吧,同样是4路至强。
Top
44 楼myserver(Wind)回复于 2002-12-01 12:19:19 得分 5
我到认为,数据库的运行情况光靠硬件升级是行不通的,我们公司做得his系统用的也是sql server数据库,数据量一年同样超过1000万条。在V1.0时前台速度慢得让患者直骂,后台的查询速度让我们自己都受不了,后来数据库重新设计后到了V2.0时,以前的问题也都迎刃而解了,数据设计的学问真的很多,很多优化都是在日常工作中总结的,提议斑竹开个帖子,进行数据库优化的讨论,以前好像也有过,直到的请把地址登出来Top




