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个数据库设计最佳实践
20个数据库设计最佳实践.pdf20个数据库设计最佳实践.pdf20个数据库设计最佳实践.pdf20个数据库设计最佳实践.pdf20个数据库设计最佳实践.pdf20个数据库设计最佳实践.pdf20个数据库设计最佳实践.pdf20个数据库设计最佳...
20个数据库设计最佳实践.docx
数据库设计的 10 个最佳实践!(csdn)————程序
数据库设计的 10 个最佳实践.docx数据库设计的 10 个最佳实践.docx数据库设计的 10 个最佳实践.docx数据库设计的 10 个最佳实践.docx数据库设计的 10 个最佳实践.docx数据库设计的 10 个最佳实践.docx数据库设计的 ...
数据库设计的 10 个最佳实践.pdf数据库设计的 10 个最佳实践.pdf数据库设计的 10 个最佳实践.pdf数据库设计的 10 个最佳实践.pdf数据库设计的 10 个最佳实践.pdf数据库设计的 10 个最佳实践.pdf数据库设计的 10 个...
数据库架构设计最佳实践.pptx
下面给出了20个数据库设计最佳实践,当然,所谓最佳,还是要看它是否适合你的程序。一起来了解了解吧。 1.使用明确、统一的标明和列名,例如 School, SchoolCourse, CourceID。 2.数据表名使用单数而不是复数,例如 ...
互联网数据库架构设计最佳实践.docx
内存数据库原理及最佳实践,讲述内存数据库的原理以及实例
数据架构设计与实践(上避免删库跑路黑天鹅,快狗打车数据库架构最佳实践
数据架构设计与实践(上避免删库跑路黑天鹅,快狗打车数据库架构最佳实践.zip
最佳实践 面向联机事务处理 OLTP 环境的物 理数据库设计 v 版权所有 IBM Corp 2008 2011 目录 图表 8 执行摘要 1 物理数据库设计简介 3 OL TP 工作负载特征 5 物理数据库设计 7 数据建模 9 IBM InfoSphere Data ...
银行分布式数据库设计与运维中的最佳实践.docx
MySQL数据库设计规范,MySQL数据库与oracle、sqlserver等数据库相比,有其内核上的优势与劣势。我们在使用MySQL数据库的时候需要遵循一定规范,扬长避短。本规范旨在帮助或指导RD、QA、OP等技术人员做出适合线上业务...
详细介绍数据库结构设计、范式和反范式设计、物理设计等等 目录: 一、结构优化概述 二、结构设计 三、需求分析及逻辑设计 四、需求分析及逻辑设计—反范式化设计 五、范式化设计和反范式化设计优缺点 六、物理设计...
银行分布式数据库设计与运维中的典型难点-最佳实践.docx
智能云高性能KV数据库设计与实践 百亿级分布式文件系统FastCFS架构与实现 本地服务领域接地气的AI对话机器人 银行核心系统分布式架构转型实践 程序员必须掌握的数据库原理 弹性经济,云上ClickHouse的架构思想 斗鱼...
《数据库系统原理》课程设计—图书馆管理系统 一、课程设计的目的及意义 本课程设计是在学习《数据库原理》课程后,进行的一次全面的综合训练,其目的在于 加深对数据库原理的理解,掌握运用数据库应用系统开发软件...