`
lexinquan
  • 浏览: 45903 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

数据库设计经验之--表的设计

阅读更多
1、定义一些字典表,在命名字段并为其指定数据类型的时候要保证一致性,可以在字典表里定义常用字段的名称、类型、枚举值及其对应的意思。枚举值可以用整型(有大小关系,例如:权限级别)或短字符代码(便于扩充,例如:渠道标识),这样在实际表记录中字段值可以较小,对于大表可以省空间,同时提高表扫描的效率。

2、尽量不要使用auto_increment类型字段作为主键,这样会使分布、备份、还原有一定的问题。

3、如果表中的数据会经常变动,一定要加上“最近更新日期/时间”字段,对于频繁变动的记录,还可另外再加一个变更日志表。变更日志表一般在查错或事后审核时用,所以在实时系统里该表可以不加任何主键及索引,提高插入效率,然后把数据放到非实时库中建索引进行查询。

4、外键用来保证数据一致性,但在实时系统里,通过应用程序逻辑的严密性保证数据的一致性,从而不在表上定义外键关系,可以起到提高数据库性能的作用,特别是对于大型表而言。

5、一般的表设计都会遵行第三范式,对于复杂的实时系统,会产生许多关联表,对于更新及删除操作,不会产生什么性能问题,但是对于查询,也许会造成负面的影响。如果实时系统里存在大量不可少的关联查询,比如要超过3个以上表进行关联时,考虑到性能因素,可以在表中加入少量的冗余字段,以减少表的关联操作,但这种行为必须谨慎考虑,防止对更新及删除产生过多影响。

6、字段类型的选择可考虑一定的扩展性,但是尽量选择存储小的类型和长度,例如:能用小整型的地方不要用大整型;如果字段是固定长度或长度变化范围不太的,选用固定长度类型;如果字符类型与整数类型都可用,尽量选整数类型。

7、对巨大数据量表的设计,可以考虑表分区实现。表分区是将一个大表分成多个分区表,以提高大表的访问性能。如果某个大表满足以下两个条件,可以适当的考虑分区:
(1)存在适合分区的表字段,并且只访问某一特定条件的数据。如存在日期字段,则可考虑按季度或按月份进行分区。
(2)由于数据量大,导致对表的访问开销巨大,不能达到预期的处理响应。分区可以将表和索引分的更小,更容易管理,从而提高响应速度。

8、流水表,可以分为当前表和历史表。例如:考虑业务的需要,可以把最近三个月的数据放在当前表中,三个月以前到一年以内的数据放在历史表中,配置固定任务,每天晚上或在业务不频繁的时候把过期数据从当前表移到历史表中。当前表小,可以少建索引,历史表适量建多些索引,一年以前的数据定时移到非实时数据库中存档。如果历史表太大,做备份归档,并删除数据库旧记录。

9、上面是数据的水平分割方式,还可以考虑数据的垂直分割方式,将原始表分成多个包含较少列的表。例如下面的情况:应用程序经常只需要访问部分数据列,很少时候需要访问其它部分数据列。
分享到:
评论

相关推荐

    数据库课程设计------人事管理系统设计.docx

    数据库课程设计------人事管理系统设计.docx数据库课程设计------人事管理系统设计.docx数据库课程设计------人事管理系统设计.docx数据库课程设计------人事管理系统设计.docx数据库课程设计------人事管理系统设计...

    数据库课程设计---学生选课信息管理系统.docx

    数据库课程设计---学生选课信息管理系统.docx数据库课程设计---学生选课信息管理系统.docx数据库课程设计---学生选课信息管理系统.docx数据库课程设计---学生选课信息管理系统.docx数据库课程设计---学生选课信息...

    数据库课程设计报告---餐饮管理系统.docx

    数据库课程设计报告---餐饮管理系统.docx数据库课程设计报告---餐饮管理系统.docx数据库课程设计报告---餐饮管理系统.docx数据库课程设计报告---餐饮管理系统.docx数据库课程设计报告---餐饮管理系统.docx数据库课程...

    数据库课程设计报告---餐饮管理系统.pdf

    数据库课程设计报告---餐饮管理系统.pdf数据库课程设计报告---餐饮管理系统.pdf数据库课程设计报告---餐饮管理系统.pdf数据库课程设计报告---餐饮管理系统.pdf数据库课程设计报告---餐饮管理系统.pdf数据库课程设计...

    数据库课程设计---职业介绍信息管理系统.pdf

    数据库课程设计---职业介绍信息管理系统.pdf数据库课程设计---职业介绍信息管理系统.pdf数据库课程设计---职业介绍信息管理系统.pdf数据库课程设计---职业介绍信息管理系统.pdf数据库课程设计---职业介绍信息管理...

    数据库课程设计---职业介绍信息管理系统.docx

    数据库课程设计---职业介绍信息管理系统.docx数据库课程设计---职业介绍信息管理系统.docx数据库课程设计---职业介绍信息管理系统.docx数据库课程设计---职业介绍信息管理系统.docx数据库课程设计---职业介绍信息...

    数据库课程设计----题目与要求(参考20个).docx

    数据库课程设计----题目与要求(参考20个).docx数据库课程设计----题目与要求(参考20个).docx数据库课程设计----题目与要求(参考20个).docx数据库课程设计----题目与要求(参考20个).docx数据库课程设计----题目与要求...

    数据库课程设计----题目与要求(参考20个).pdf

    数据库课程设计----题目与要求(参考20个).pdf数据库课程设计----题目与要求(参考20个).pdf数据库课程设计----题目与要求(参考20个).pdf数据库课程设计----题目与要求(参考20个).pdf数据库课程设计----题目与要求...

    数据库课程设计报告---商品销售管理系统.docx

    数据库课程设计报告---商品销售管理系统.docx数据库课程设计报告---商品销售管理系统.docx数据库课程设计报告---商品销售管理系统.docx数据库课程设计报告---商品销售管理系统.docx数据库课程设计报告---商品销售...

    数据库课程设计报告---商品销售管理系统.pdf

    数据库课程设计报告---商品销售管理系统.pdf数据库课程设计报告---商品销售管理系统.pdf数据库课程设计报告---商品销售管理系统.pdf数据库课程设计报告---商品销售管理系统.pdf数据库课程设计报告---商品销售管理...

    数据库课程设计---学生选课信息管理系统-其他专业.docx

    数据库课程设计---学生选课信息管理系统-其他专业.docx数据库课程设计---学生选课信息管理系统-其他专业.docx数据库课程设计---学生选课信息管理系统-其他专业.docx数据库课程设计---学生选课信息管理系统-其他专业....

    数据库课程设计---学生选课信息管理系统-其他专业.pdf

    数据库课程设计---学生选课信息管理系统-其他专业.pdf数据库课程设计---学生选课信息管理系统-其他专业.pdf数据库课程设计---学生选课信息管理系统-其他专业.pdf数据库课程设计---学生选课信息管理系统-其他专业.pdf...

    VC++数据库课程设计报告---外卖订餐平台.pdf

    VC++数据库课程设计报告---外卖订餐平台.pdfVC++数据库课程设计报告---外卖订餐平台.pdfVC++数据库课程设计报告---外卖订餐平台.pdfVC++数据库课程设计报告---外卖订餐平台.pdfVC++数据库课程设计报告---外卖订餐...

    数据库课程设计--运动会成绩管理系统--用c#做 (2).pdf

    数据库课程设计--运动会成绩管理系统--用c#做 (2).pdf数据库课程设计--运动会成绩管理系统--用c#做 (2).pdf数据库课程设计--运动会成绩管理系统--用c#做 (2).pdf数据库课程设计--运动会成绩管理系统--用c#做 (2).pdf...

    VC++数据库课程设计报告---外卖订餐平台 (2).pdf

    VC++数据库课程设计报告---外卖订餐平台 (2).pdfVC++数据库课程设计报告---外卖订餐平台 (2).pdfVC++数据库课程设计报告---外卖订餐平台 (2).pdfVC++数据库课程设计报告---外卖订餐平台 (2).pdfVC++数据库课程设计...

    VC++数据库课程设计报告---外卖订餐平台 (2).docx

    VC++数据库课程设计报告---外卖订餐平台 (2).docxVC++数据库课程设计报告---外卖订餐平台 (2).docxVC++数据库课程设计报告---外卖订餐平台 (2).docxVC++数据库课程设计报告---外卖订餐平台 (2).docxVC++数据库课程...

    数据库课程设计报告--网上选课系统 (2).docx

    数据库课程设计报告--网上选课系统 (2).docx数据库课程设计报告--网上选课系统 (2).docx数据库课程设计报告--网上选课系统 (2).docx数据库课程设计报告--网上选课系统 (2).docx数据库课程设计报告--网上选课系统 (2)...

    数据库课程设计--图书借阅管理系统的设计.pdf

    数据库课程设计--图书借阅管理系统的设计.pdf数据库课程设计--图书借阅管理系统的设计.pdf数据库课程设计--图书借阅管理系统的设计.pdf数据库课程设计--图书借阅管理系统的设计.pdf数据库课程设计--图书借阅管理系统...

Global site tag (gtag.js) - Google Analytics