注册 登录
编程论坛 SQL Server论坛

请问,我有一个数据表,每年会增加1-2百万条左右的数据,请问多久会感觉到明显的性能下降?

mansohu 发布于 2016-08-16 13:53, 2668 次点击
请问,历史数据产生的较快较多时,应该用什么思路设计数据库?谢谢!

[此贴子已经被作者于2016-8-17 14:32编辑过]

6 回复
#2
mywisdom882016-08-16 17:07
以下是引用mansohu在2016-8-16 13:53:59的发言:

请问,历史数据产生的较快较多时,应该用什么思路设计数据库?谢谢!

每年才增加几百条,基本可以忽略不计,不怎么影响速度。
对主要字段做索引,如编号等,会提高查询速度。
#3
mansohu2016-08-17 14:32
回复 2楼 mywisdom88
打错了,是1-2百万条
#4
mywisdom882016-08-17 17:52
以下是引用mansohu在2016-8-17 14:32:16的发言:

打错了,是1-2百万条

你可以自己测试速度的啊,同样的语句,在1W记录时的查询同样记录数的速度多少?
10W记录时,又多少?
100W记录时,又多少?
然后,你根据,查询条件,针对性的选择某些字段,做索引,
然后,再测试。
一般,有索引的,会比没索引的快
#5
mywisdom882016-08-17 17:57
比如,你记录是这样产生的
编号,名称,时间,数量
b001,黄豆,2016-7-1,100
b001,黄豆,2016-7-5,110
b001,黄豆,2016-8-1,500
b002,花生,2016-7-1,100
b002,花生,2016-7-5,100
b002,花生,2016-8-1,1000
你可以针对 编号+时间,做索引,或者单独 对编号,时间做索引
SQL数据库,可以这样做索引的
create index 索引名称 ON 表 (字段1,字段2) WITH FILLFACTOR=60 --2个字段一起做索引
create index 索引名称1 ON 表 (字段1) WITH FILLFACTOR=60
create index 索引名称2 ON 表 (字段2) WITH FILLFACTOR=60
如上,你表名称为 myTest(BH,SJ)
create index myTest_ind ON myTest (bh,sj) WITH FILLFACTOR=60



[此贴子已经被作者于2016-8-17 18:01编辑过]

#6
yft5082016-08-19 10:37
索引是从logic read角度考虑数据库的性能问题,还有数据库的physical read角度,你数据库服务器的io能力,以及数据库数据库文件的布局方式也会影响到数据的性能,而且还要考虑一点,对某些字段建立索引后,是可以加快查询速度,但是确影响到了更新的速度,所以还要看对该表的主要操作是什么
#7
mansohu2016-08-19 11:06
回复 5楼 mywisdom88
非常感谢回复,我试试
1