为不影响数据检索速度,一个库应该不超过多少张表,一张表应该不超过多少条记录,请各位提出建议,谢谢!

水经注GIS
企业官方账号
2008-11-25 02:04:40
我有上十个T的数据要入库,数据太大,务必影响查询速度,因为我需要将数据分n个数据库,每个数据库中就分n张表分别存入这条记录。
我想问的量,一张表应该不超过多少条记录为宜(如50万),一个库中又应该不超过多少张表为宜(如200张表),请各位赐教,谢谢!
...全文
326 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
水经注GIS 2008-11-26
  • 打赏
  • 举报
回复
非常感谢大家的回复!
到目前为止,“oraclelogan”兄的回复最有参考意义,我的数据必需放在一台机器上,且是多个硬盘,希望有这方面工作经验的朋友给个比较理想的建议,希望有实际的数据为证,就像“oraclelogan”兄所回复中的“表有512张,记录超过50万的有20张表”等等,呵呵!谢谢大家!
liubei611 2008-11-26
  • 打赏
  • 举报
回复
那要看硬件了
youxipenglai 2008-11-26
  • 打赏
  • 举报
回复
不管硬件配置多高,我觉得最好还是分库分表合适,根据业务需要调整。

楼主十几个T的数据,如果不是全部需要的话也可以分离出一部分到其他备份上去吧。
现在硬件发展再快,处理速度再高,也架不住人们想把所有数据全堆到一起啊。
flairsky 2008-11-26
  • 打赏
  • 举报
回复
我记得邹老大维护过近亿条数据的表,某张帖子中见过

我自己也维护着这么大的表,点查询也不慢
oraclelogan 2008-11-25
  • 打赏
  • 举报
回复
[Quote=引用楼主 mrib 的帖子:]
我有上十个T的数据要入库,数据太大,务必影响查询速度,因为我需要将数据分n个数据库,每个数据库中就分n张表分别存入这条记录。
我想问的量,一张表应该不超过多少条记录为宜(如50万),一个库中又应该不超过多少张表为宜(如200张表),请各位赐教,谢谢!
[/Quote]

我现在做的项目的表有512张,记录超过50万的有20张表,总体感觉速度还行。

其实表查询不光与记录总量有关心,还跟字段类型有关系,比如image,ntext之类的字段,查起来就特别慢!
zdgood 2008-11-25
  • 打赏
  • 举报
回复
帮顶
dobear_0922 2008-11-25
  • 打赏
  • 举报
回复
这个没有固定的标准,根据的你硬件和业务需求定吧
amstar 2008-11-25
  • 打赏
  • 举报
回复
楼上的是SQL 2000的,2005和2008就大多了,当然,最好还是用ORACLE ....
dawugui 2008-11-25
  • 打赏
  • 举报
回复
这个应该和硬件的相关配置有关吧.一般来说,一张表应该不超过1000万为好,一个库中的表数应该没有多达的限制(当然不能超过2,147,483,647个,不过估计你也不可能用到这么多的表.)

以下为 sql server 2000 数据对象的最大容量说明,在实际应用过程中可以根据需要作适当的改变。

对象(最大容量说明)
批处理大小(65,536 * 网络数据包大小) 见说明1.
每个短字符串列的字节数(8,000)
每个 text、ntext、或 image 列的字节数(2 GB - 2)
每个 GROUP BY、ORDER BY的字节数() 见说明2.
每个索引中的字节数(900)
每个外键的字节数(900)
每个主键的字节数(900)
每行字节数(8,060)
存储过程源文本中的字节数(批处理大小之较小者或者 250 MB)
每个数据表的聚集索引数(1)
GROUP BY、ORDER BY 中的列数()
GROUP BY WITH CUBE 或 WITH ROLLUP 语句中的列数或表达式数目()
每个索引的列数(16)
每个外键的列数(16)
每个主键的列数(16)
每个基础数据表的列数(1,024)
每个SELECT 语句的列数(4,096)
每个INSERT 语句的列数(1,024)
每个客户端的连接个数(已配置连接的最大值)
数据库大小(1,048,516 TB) 见说明3.
每个 SQL Server 实例的数据库个数(32,767)
每个数据库的文件组个数(256)
每个数据库的文件个数(32,767)
文件大小(数据)(32 TB)
文件大小(日志)(32 TB)
每个数据表的外键表引用(253)
标识符长度(以字符计)(128)
每台计算机的实例数 暂缺 16
包含 SQL 语句的字符串长度(批处理大小)(65,536 * 网络数据包大小)
每个连接的锁数(每个服务器的最大锁数)
每个 SQL Server 实例的锁数(2,147,483,647(静态)SQL Server 40%的内存(动态))
嵌套存储过程层数(32)
嵌套子查询(32)
嵌套触发器层数(32)
每个数据表的非聚集索引个数(249)
SQL Server 实例中同时打开的对象个数(2,147,483,647(或可用内存)) 见说明4.
每个数据库中的对象个数(2,147,483,6474)
每个存储过程的参数个数(1,024)
每个数据表的 REFERENCE 个数(253)
每个数据表的行数(受可用存储资源限制)
每个数据库的数据表个数(受数据库中的对象个数限制)
每个 SELECT 语句的数据表个数(256)
每个数据表的触发器个数(受数据库中的对象个数限制)
每个数据表的 UNIQUE 索引个数或约束个数(249个非聚集索引和 1 个聚集索引)

说明:
1、网络数据包大小是表格格式数据方案 (TDS) 数据包的大小,该数据包用于应用程序和关系数据库引擎之间的通讯。
默认的数据包大小为 4 KB,由 network packet size 配置选项控制。
2、在 SQL Server 2000 中,任何键的最大字节数不能超过 900。可以使用可变长度的列来定义键,只要在这种列中不插入数据超过 900
字节的行,其最大大小就可以在 900 以上。有关更多信息,请参见索引键的最大值。
3、当使用 SQL Server 2000 Desktop Engine 或 Microsoft 数据引擎 (MSDE) 1.0 时,数据库的大小不能超过 2 GB。
4、数据库对象包括所有的表、视图、存储过程、扩展存储过程、触发器、规则、默认值及约束。一个数据库中所有对象的总数不得超过
2,147,483,647。
5、SQL Server 2000 中文版不支持英文版的 NT 4.0 企业版。

附录1、SQL Server 2000 版本支持的最大处理器数
以下列出各 SQL Server 2000 版本中的数据库引擎在对称多处理 (SMP) 计算机上能够支持的处理器数。

操作系统 企业版 标准版 个人版 开发版 Desktop Engine SQL Server CE 企业评估版
Microsoft Windows 2000 DataCenter 32 4 2 32 2 暂缺 32
Windows 2000 Advanced Server 8 4 2 8 2 暂缺 8
Windows 2000 Server 4 4 2 4 2 暂缺 4
Windows 2000 Professional 暂缺 暂缺 2 2 2 暂缺 2
Microsoft Windows NT 4.0 Server 企业版 8 8 2 8 2 暂缺 8
Windows NT 4.0 Server 4 4 2 4 2 暂缺 4
Windows NT 4.0 Workstation 暂缺 暂缺 2 2 2 暂缺 2
Microsoft Windows 98 暂缺 暂缺 1 使用 1 暂缺 暂缺
Desktop
Engine
Microsoft Windows CE 暂缺 暂缺 暂缺 暂缺 暂缺 1 暂缺

附录2、SQL Server 2000 版本支持的最大物理内存量
以下列出各 SQL Server 2000 版中的数据引擎能够支持的最大物理内存量或 RAM。

操作系统 企业版 标准版 个人版 开发版 Desktop Engine SQL Server CE 企业评估版
Windows 2000 DataCenter 64 GB 2 GB 2 GB 64 GB 2 GB 暂缺 64 GB
Windows 2000 Advanced Server 8 GB 2 GB 2 GB 8 GB 2 GB 暂缺 8 GB
Windows 2000 Server 4 GB 2 GB 2 GB 4 GB 2 GB 暂缺 4 GB
Windows 2000 Professional 暂缺 暂缺 2 GB 2 GB 2 GB 暂缺 2 GB
Windows NT 4.0 Server 企业版 3 GB 2 GB 2 GB 3 GB 2 GB 暂缺 3 GB
Windows NT 4.0 Server 2 GB 2 GB 2 GB 2 GB 2 GB 暂缺 2 GB
Windows NT 4.0 Workstation 暂缺 暂缺 2 GB 2 GB 2 GB 暂缺 2 GB
nzperfect 2008-11-25
  • 打赏
  • 举报
回复
没有规定,看你的硬件水平了.
从备份来看,单库不要太大的好,不然备份恢复都慢.
cuijie_cn 2008-11-25
  • 打赏
  • 举报
回复
这个可没定数 :)
liangCK 2008-11-25
  • 打赏
  • 举报
回复
没有建议.纯接分..
wanshichen 2008-11-25
  • 打赏
  • 举报
回复
实在不好说,帮顶,关注……
xieyueqing 2008-11-25
  • 打赏
  • 举报
回复
尽量分库分表吧,没有一个硬性的指标的
  • 打赏
  • 举报
回复

这个,还是帮顶吧。


==== 让你望见影子的墙 ====
水族杰纶 2008-11-25
  • 打赏
  • 举报
回复
数据库对象包括所有的表、视图、存储过程、扩展存储过程、触发器、规则、默认值及约束。一个数据库中所有对象的总数不得超过 2,147,483,647
hyde100 2008-11-25
  • 打赏
  • 举报
回复
很难说

34,873

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧