社区
MS-SQL Server
帖子详情
关于大型 数据库表和设计问题
三碗猪脚
2008-11-03 10:49:12
看到有点论坛设计用户表的时候,分为两个,user,记录用户名及登录信息,字段较少, userData记录用户详细信息,字段较多
这样做目的何在,是为了查询方便,还是为了提高查询效率,怎么个提高法的,为何不设计成一个表,在查询上做一下修改呢?
还有个问题,像腾讯,网易等这样门户级网站对于用户表(千万,甚至亿级的)是怎么设计的,是一个表,还是设计成多个表,如何才能提高查询效率?
...全文
152
17
打赏
收藏
关于大型 数据库表和设计问题
看到有点论坛设计用户表的时候,分为两个,user,记录用户名及登录信息,字段较少, userData记录用户详细信息,字段较多 这样做目的何在,是为了查询方便,还是为了提高查询效率,怎么个提高法的,为何不设计成一个表,在查询上做一下修改呢? 还有个问题,像腾讯,网易等这样门户级网站对于用户表(千万,甚至亿级的)是怎么设计的,是一个表,还是设计成多个表,如何才能提高查询效率?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
whalefish2001
2008-11-04
打赏
举报
回复
如果要把全国人口的身份信息,以身份证号码为关键字
的问题,放在一张表上,不会打大的折扣,因为你有个前提,身份证号码为关键字(主键),
唯一打大的折扣的地方,就是你把人员地址,和其他相关信息也放在这张表上。
建议这张表只存 身份证,姓名,性别,等经常使用的数据。
zjcxc
元老
2008-11-03
打赏
举报
回复
没有多少适合的问题, 应该是经常一齐使用的放在一齐, 长度太长的应该适当考虑放在单独的表中
三碗猪脚
2008-11-03
打赏
举报
回复
3Q,继续学习
一个表多少个字段合适呢?
zjcxc
元老
2008-11-03
打赏
举报
回复
sql server 以数据页为单位来存取数据的
表上的列越多, 一页能存放的记录数越少, 也就意味着要查询数据的时候, 需要加载的页会很多, I/O开销大, 效率自然低
三碗猪脚
2008-11-03
打赏
举报
回复
邹大哥,什么原因,不要放在一表呢,我想知道
zjcxc
元老
2008-11-03
打赏
举报
回复
不经常同时使用的列, 还是不要放在一张表的比较好
hyde100
2008-11-03
打赏
举报
回复
设计表要考虑范式,考虑性能
rucypli
2008-11-03
打赏
举报
回复
保证索引别太多
zhouxu_hust
2008-11-03
打赏
举报
回复
顶
三碗猪脚
2008-11-03
打赏
举报
回复
wu ren la
qizhengsheng
2008-11-03
打赏
举报
回复
学习了
顶老大
Zoezs
2008-11-03
打赏
举报
回复
好问题,帮顶!!
三碗猪脚
2008-11-03
打赏
举报
回复
一个弱弱的想法,打个比方,
如果要把全国人口的身份信息,以身份证号码为关键字,记录放到数据库中,有这样的需求,查询本市的人口信息并导出,
在存储的时候,是分市(身份证号前6位相同)建立多表(即每个市一张表,表的结构一样)存储好,
还是将所有的放到一张表中也可以,两者在查询效率上有多大的差别?
个人觉得一张表便于管理,但查询效率上会不会大的打折扣呢?特别是在查询结果集含记录比较多的时候会不会非常的慢?
whalefish2001
2008-11-03
打赏
举报
回复
一般来说,NULL值同样也会影响I/O的。
rockyvan
2008-11-03
打赏
举报
回复
[Quote=引用 7 楼 zjcxc 的回复:]
没有多少适合的问题, 应该是经常一齐使用的放在一齐, 长度太长的应该适当考虑放在单独的表中
[/Quote]
這個有體會。比如有個員工信息表,有一些字段是存放圖片信息的,單獨開一個表存放好像是好點,因爲大部分圖片不是經常使用。
whalefish2001
2008-11-03
打赏
举报
回复
呵呵,邹建回答的真好。
表上的列越多, 一页能存放的记录数越少, 也就意味着要查询数据的时候, 需要加载的页会很多, I/O开销大, 效率自然低.(在数据量大的时候)
其实,这个跟MS-SQL的处理机制有关系。
claro
2008-11-03
打赏
举报
回复
[Quote=引用 5 楼 zjcxc 的回复:]
sql server 以数据页为单位来存取数据的
表上的列越多, 一页能存放的记录数越少, 也就意味着要查询数据的时候, 需要加载的页会很多, I/O开销大, 效率自然低
[/Quote]
请问前辈,如果一个表大约有30列,但是20列都是NULL,是否意味着NULL值列同样影响I/O?
go
数据库
mysql与redis
MySQL 教程MySQL 是流行的关系型
数据库
管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系
数据库
管理系统)应用软件之一。在本教程中,会让大家快速掌握 MySQL 的基本知识,并轻松使用 MySQL
数据库
。什么是
数据库
?
数据库
(Database)是按照数据结构来组织、存储和管理数据的仓库。每个
数据库
都有一个或多个不同的 API 用于创建,访问,管理,搜索和复制所保存的数据。我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢。所以,现在我们使用关系型
数据库
管理系统(RDBMS)来存储和管理大数据量。所谓的关系型
数据库
,是建立在关系模型基础上的
数据库
,借助于集合代数等数学概念和方法来处理
数据库
中的数据。RDBMS 即关系
数据库
管理系统(Relational Database Management System)的特点:1.数据以
表
格的形式出现2.每行为各种记录名称3.每列为记录名称所对应的数据域4.许多的行和列组成一张
表
单5.若干的
表
单组成databaseRDBMS 术语 在我们开始学习MySQL
数据库
前,让我们先了解下RDBMS的一些术语:
数据库
:
数据库
是一些关联
表
的集合。数据
表
:
表
是数据的矩阵。在一个
数据库
中的
表
看起来像一个简单的电子
表
格。列: 一列(数据元素) 包含了相同类型的数据, 例如邮政编码的数据。行:一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据。冗余:存储两倍数据,冗余降低了性能,但提高了数据的安全性。主键:主键是唯一的。一个数据
表
中只能包含一个主键。你可以使用主键来查询数据。外键:外键用于关联两个
表
。复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。索引:使用索引可快速访问
数据库
表
中的特定信息。索引是对
数据库
表
中一列或多列的值进行排序的一种结构。类似于书籍的目录。参照完整性: 参照的完整性要求关系中不允许引用不存在的实体。与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性。MySQL 为关系型
数据库
(Relational Database Management System), 这种所谓的关系型可以理解为
表
格的概念, 一个关系型
数据库
由一个或数个
表
格组成, 如图所示的一个
表
格:
表
头(header): 每一列的名称;列(col): 具有相同数据类型的数据的集合;行(row): 每一行用来描述某条记录的具体信息;值(value): 行的具体信息, 每个值必须与该列的数据类型相同;键(key): 键的值在当前列中具有唯一性。MySQL
数据库
MySQL 是一个关系型
数据库
管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是一种关联
数据库
管理系统,关联
数据库
将数据保存在不同的
表
中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL 是开源的,目前隶属于 Oracle 旗下产品。MySQL 支持
大型
的
数据库
。可以处理拥有上千万条记录的
大型
数据库
。MySQL 使用标准的 SQL 数据语言形式。MySQL 可以运行于多个系统上,并且支持多种语言。这些编程语言包括 C、C++、Python、Java、Perl、PHP、Eiffel、Ruby 和 Tcl 等。MySQL 对PHP有很好的支持,PHP 是目前流行的 Web 开发语言。MySQL 支持
大型
数据库
,支持 5000 万条记录的数据仓库,32 位系统
表
文件最大可支持 4GB,64 位系统支持最大的
表
文件为8TB。MySQL 是可以定制的,采用了 GPL 协议,你可以修改源码来开发自己的 MySQL 系统。Redis 教程REmote DIctionary Server(Redis) 是一个由 Salvatore Sanfilippo 写的 key-value 存储系统,是跨平台的非关系型
数据库
。Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储
数据库
,并提供多种语言的 API。Redis 通常被称为数据结构服务器,因为值(value)可以是字符串(String)、哈希(Hash)、列
表
(list)、集合(sets)和有序集合(sorted sets)等类型。
数据库
表
的
设计
原则
数据库
设计
的
设计
内容包括:需求分析、概念结构
设计
、逻辑结构
设计
、物理结构
设计
、
数据库
的实施和
数据库
的运行和维护 步骤 一、需求分析 调查和分析用户的业务活动和数据的使用情况,弄清所用数据的种类、范围、数量以及它们在业务活动中交流的情况,确定用户对
数据库
系统的使用要求和各种约束条件等,形成用户需求规约。 分析的结果采用数据流程图(DFD)进行图形化的描述 二、概念
设计
对用户要求描述的现...
数据库
表
的
设计
流程和思考方向
数据库
设计
的基本步骤 按照规范
设计
的方法,考虑
数据库
及其应用系统开发全过程,将
数据库
设计
分为以下6个阶段 1.需求分析 2.概念结构
设计
3.逻辑结构
设计
4.物理结构
设计
5.
数据库
实施 6.
数据库
的运行和维护
数据库
设计
通常分为6个阶段1(需求分析:分析用户的需求,包括数据、功能和性能需求;2概念结构
设计
:主要采用E-R模型进行
设计
,包括画E-R图;3逻辑结构
设计
:通过将E-R图转换成
表
,实现从E-R模型到关系模型的转换;4
数据库
物理
设计
:主要是为所
设计
的
数据库
选择合适的存储结构和...
数据库
(
表
结构)
设计
技巧及注意事项
当您在决定开发一个
数据库
管理项目时,最先着手的工作就应是
数据库
表
结构的
设计
了。可以这么说,
表
结构的
设计
是开发
数据库
管理项目的基石,一个糟糕的
表
结构
设计
,可能会严重延误您的项目开发周期,使您大量的劳动时间为此付之东流。
表
结构
设计
是
数据库
逻辑
设计
的重要组成部分,直接影响到
数据库
的性能,所以小编在本文对
数据库
(
表
结构)
设计
技巧及注意事项做一个讲解! 1.
表
名一般以【模块名称_具体
表
名】来实现,
大型
电商项目
数据库
表
设计
1.Spu和Sku的概念 SPU:Standard Product Unit (标准产品单位) ,一组具有共同属性的商品集 SKU:Stock Keeping Unit(库存量单位),SPU商品集因具体特性不同而细分的每个商品 比如说小米8手机是Spu, 红色的128g存储空间,6g内存的小米8是Sku。 Spu是一组商品集合,Sku是能根据条件在Spu种唯一确定的一件商品 如本例中的...
MS-SQL Server
34,588
社区成员
254,588
社区内容
发帖
与我相关
我的任务
MS-SQL Server
MS-SQL Server相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章