`
jaychang
  • 浏览: 734677 次
  • 性别: Icon_minigender_1
  • 来自: 嘉兴
社区版块
存档分类
最新评论

20个数据库设计的最佳实践

 
阅读更多

1、使用定义明确的表或列名,并保持一致(例如,School、StudentCourse、CourseID)。 

2、使用单数形式的表名(即,用StudentCourse而非StudentCourses)。表代表了实体的合集,不需要复数形式。 

3、不要在表名中使用空格。否则你将在定义表时不得不使用“{”、“[”等字符(即为了访问表Student Course,你须得书写“Student Course”。使用StudentCourse足够了)。 

4、不要在表名中加入不必要的前缀或后缀(即,命名School即可,不必为TblSchool、SchoolTable等)。 

5、加密密码,保证安全性。需要时可在应用中解密它们。 

6、在所有的表中使用整型ID字段。即便眼下ID还用不着,将来也会有用到的时候(例如在关联表中、索引等)。 

7、使用整数(或相关)类型的数据列来创建索引。Varchar列索引会导致性能问题。 

8、对布尔值使用bit字段。使用Integer或Varchar类型存储毫无必要。同时,在这些列名中加入Is描述。 

9、对数据库访问进行验证。任何用户都不应给予admin角色。 

10、若非必要的话,避免使用“select *”查询语句。为了更好的性能,请使用“select [required_columns_list]”。 

11、若程序代码很大,可使用ORM(对象关系映射)框架(如Hibernate、iBatis)工具。关于其性能问题可通过详细配置参数来应付。 

12、将那些不使用或不常用而又较大的表(table parts)区隔到不同的物理存储空间,以便提供更好地查询性能。 

13、对重要的数据库系统,使用灾难恢复方案和安全服务,比如故障切换集群(failover clustering)、自动备份、复制等。 

14、为了保证数据完整性,请使用约束(如外键、Check、Not null约束等)。不要给予对应用代码的完整控制权。 

15、缺乏数据库文档的习惯非常不好(evil)。用ER图对数据库设计模型进行描述。同时记得编写触发器、存储过程等脚本的代码。 

16、对频繁进行的查询使用索引。Analyser工具可用于决定index在何处定义。对于查询获取大量列,聚簇索引(clustered index)通常更好。而对于点查询,可使用非聚簇索引。 

17、将数据库服务器与Web服务器放置在不同的计算机中。这可以提供更好的安全性能(攻击者不能直接访问数据),而且由于可以限制访问请求数及进程量,服务器也能获得更的CPU及内存性能。 

18、图像和Blob列一定不要定义在查询频繁的表中,这也是出于性能考虑。可将这些数据放在单独的表中,并在查询表中建立指向它们的指针。 

19、规范化(Normalization)是必须的,以进一步优化应用性能。否则可能面临过多的数据副本,当然过渡规范化(over-normalization)则会导致大量跨太多表的连接。这两者都会影响到性能。 

20、同样也要在数据库建模及设计上花些功夫。若为此省下时间,则很可能面临10倍乃至100/1000倍的维护/重新设计成本。  

分享到:
评论

相关推荐

    20个数据库设计最佳实践

    ### 数据库设计最佳实践 #### 1. 使用明确、统一的命名规则 - **实践要点**:为了确保数据库的一致性和可读性,应采用一套明确的命名规则。例如,表名可以使用如`School`、`SchoolCourse`、`CourseID`这样的命名...

    20个数据库设计最佳实践.pdf

    以下是对《20个数据库设计最佳实践》中提到的一些关键点的详细说明: 1. **明确、统一的标识和列名**:使用清晰易懂的命名规范可以提高代码可读性,减少误解。例如,`School`, `SchoolCourse`, `CourseID` 这样的...

    20个数据库设计最佳实践.docx

    ### 数据库设计最佳实践 #### 1. 使用明确、统一的命名规则 - **实践要点**:确保所有的表名、字段名使用一致且有意义的命名规范。例如,使用`School`、`SchoolCourse`和`CourseID`这样的命名方式。 - **好处**:有...

    数据库设计的 10 个最佳实践!(csdn)————程序.pdf

    【数据库设计的10个最佳实践】 1. **考虑所有利益相关者的观点**:在设计数据库前,了解所有相关人员的需求和预期,以便创建符合用户需求和操作习惯的数据库。 2. **选择合适的数据库类型**:根据应用程序的需求,...

    Greenplum 数据库最佳实践

    掌握Greenplum数据库的最佳实践是确保数据库集群高效运行的关键。 最佳实践可以从多个方面来考虑,包括集群的维护、支持、性能优化和可扩展性等。 在集群维护方面,首先应确保硬件资源的合理分配和优化使用。...

    DB2数据库管理最佳实践pdf

    DB2数据库管理最佳实践是IBM公司推出的一款关系型数据库管理系统,广泛应用于企业级的数据存储、管理和分析。这份PDF文档很可能是对DB2数据库在实际操作中的优化策略、配置技巧和故障排查方法的深入探讨,旨在帮助...

    数据库设计最佳实践:如何规划和优化你的数据库结构.md

    数据库设计的最佳实践,重点介绍了如何规划和优化数据库结构以实现高效、安全和可扩展的数据库系统。文章首先强调了数据库设计的重要性,包括数据完整性、性能优化、可维护性、扩展性和安全性。接着,涵盖了从需求...

    阿里云分布式关系型数据库DRDS-最佳实践-D.docx

    分布式关系型数据库 DRDS 最佳实践的核心思想是:在设计分布式关系型数据库时,需要考虑数据均衡度、事务边界、常用查询效率、异构索引和简单性策略等多个方面。此外,分布式关系型数据库 DRDS 还需要考虑容量和访问...

    计算机数据库设计优秀实践分享.pdf

    二、数据库设计的十个最佳实践 1. 将所有人的观点列入考量 在设计数据库之前,先收集信息,了解相关利益者的观点,了解他们对数据库的期望和操作熟练度。这样可以确定数据库的技术水平和是否需要培训用户。 2. ...

    分享20个数据库设计的最佳实践

    下面给出了20个数据库设计最佳实践,当然,所谓最佳,还是要看它是否适合你的程序。一起来了解了解吧。 1.使用明确、统一的标明和列名,例如 School, SchoolCourse, CourceID。 2.数据表名使用单数而不是复数,例如 ...

    数据库架构设计最佳实践.pptx

    数据库架构设计最佳实践涉及到多个方面的知识,包括关系数据库的发展历史、数据库系统的设计理念以及新兴的非关系型数据库和大数据处理技术。以下是对这些知识点的详细阐述: 1. **关系数据库的发展**: - **第一...

    内存数据库原理及最佳实践

    内存数据库原理及最佳实践 内存数据库,作为一种高性能的数据库管理系统,其核心优势在于将数据存储在主内存中,而非传统的磁盘存储,从而显著提升了数据处理速度和应用程序响应时间。本文将深入探讨内存数据库的...

    数据库相关最佳实践

    3. **数据库设计规范化**: - 第一范式(1NF):确保每个字段都是不可再分的基本数据项,避免冗余数据。 - 第二范式(2NF):在满足1NF的基础上,消除部分函数依赖。 - 第三范式(3NF):在满足2NF基础上,消除...

    Oracle 数据库性能优化与运维最佳实践

    "Oracle数据库性能优化与运维最佳实践"的主题涵盖了如何确保Oracle数据库高效、稳定运行的关键技术和策略。 首先,性能优化涉及多个层面,包括SQL查询优化、存储结构优化、索引设计以及数据库参数调整。SQL查询优化...

    数据库设计规范 数据库高效设计的好东西

    - 遵循一些最佳实践,例如,使用有意义的命名规则、避免过度规范化、设计灵活的架构以适应未来变化、使用视图以提供不同层次的数据访问权限等。 综上所述,高效数据库设计需要深入理解用户需求,精心规划数据模型...

    数据库设计的 10 个最佳实践.docx

    数据库设计的10个最佳实践是确保高效、稳定和安全数据管理的关键。以下是一些核心要点: 1. **理解需求**:在设计数据库之前,必须深入理解所有利益相关者的期望和需求,包括业务逻辑、数据处理流程以及用户交互。...

    数据架构设计与实践(上避免删库跑路黑天鹅,快狗打车数据库架构最佳实践.zip

    总之,《数据架构设计与实践(上避免删库跑路黑天鹅,快狗打车数据库架构最佳实践》提供的指导涵盖了数据安全、性能优化、扩展性设计和运维监控等多个方面,对于任何希望构建稳健数据库架构的企业来说,都具有重要的...

    数据库设计指南-数据库设计教程

    数据库设计是IT领域中的核心技能之一,特别...在"db_design_tips.pdf"中,你可能会找到上述知识点的具体解释、实例和最佳实践。学习并掌握这些知识,将有助于你成为一位出色的数据库设计师,有效应对各种数据管理挑战。

    Greenplum 数据库最佳实践.pdf

    本文总结了 Greenplum 数据库的最佳实践,旨在帮助用户正确地设计、实现和使用 Greenplum 数据库。Greenplum 数据库是一个基于大规模并行处理(MPP)和无共享架构的分析型数据库,具有非规范化数据库模式,例如星型...

    互联网数据库架构设计最佳实践.docx

    【互联网数据库架构设计最佳实践】 在互联网环境中,数据库架构设计是一项关键任务,它涉及到系统的可用性、读写性能、一致性以及扩展性等多个方面。本文主要探讨了几个关键的设计思路和解决方案。 1. 可用性设计...

Global site tag (gtag.js) - Google Analytics