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

数据库设计是整个程序的重点之一,为了支持相关程序运行,最佳的数据库设计往往不可能一蹴而就,只能反复探寻并逐步求精,这是一个复杂的过程,也是规划和结构化数据库中的数据对象以及这些数据对象之间关系的过程。下面给出了20个数据库设计最佳实践,当然,所谓最佳,还是要看它是否适合你的程序。一起来了解了解吧。

1.使用明确、统一的标明和列名,例如 School, SchoolCourse, CourceID。
2.数据表名使用单数而不是复数,例如 StudentCourse,而不是StudentCourses。
3.数据表名不要使用空格。
4.数据表名不要使用不必要的前缀或者后缀,例如使用School,而不是TblSchool,或者SchoolTable等等。
5.数据库中的密码要加密,到应用中再解密。 (其实就是散列存储、单向加密)
6.使用整数作为ID字段,也许现在没有这个必要,但是将来需要,例如关联表,索引等等。
7.使用整数字段做索引,否则会带来很大的性能问题 。
8.使用 bit 作为布尔字段,使用整数或者varcha是浪费。同时,这类字段应该以“Is”开头。
9.要经过认证才能访问数据库,不要给每一个用户管理员权限。
10.尽量避免使用“select *”,而使用“select [required_column_list]”以获得更好的性能。
11.假如程序代码比较复杂,使用ORM框架,例如hibernate,iBatis。ORM框架的性能问题可以通过详细的配置去解决。
12.分割不常使用的数据表到不同的物理存储以获得更好的性能。
13.对于关键数据库,使用安全备份系统,例如集群,同步等等。
14.使用外键,非空等限制来保证数据的完整性,不要把所有的东西都扔给程序。
15.缺乏数据库文档是致命的。你应该为你的数据库设计写文档,包括触发器、存储过程和其他脚本。
16.对于经常使用的查询和大型数据表,要使用索引。数据分析工具可以帮助你决定如何建立索引。
17.数据库服务器和网页服务器应该放在不同的机器上。这回提高安全性,并减轻CPU压力。
18.Image和blob字段不应该定义在常用的数据表中,否则会影响性能。
19.范式(Normalization)要按照要求使用以提高性能。Normalization做的不够会导致数据冗余,而过度Normalization 会导致太多的join和数据表,这两种情况都会影响性能。
20.多花点时间在数据库设计上,否则你将来会付出加倍的时间来偿还。

英文原址:javacodegeeks.com

时间: 2024-10-22 16:28:52

分享20个数据库设计的最佳实践_Mysql的相关文章

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

原文:20个数据库设计的最佳实践 数据库设计是整个程序的重点之一,为了支持相关程序运行,最佳的数据库设计往往不可能一蹴而就,只能反复探寻并逐步求精,这是一个复杂的过程,也是规划和结构化数据库中的数据对象以及这些数据对象之间关系的过程.下面给出了20个数据库设计最佳实践,当然,所谓最佳,还是要看它是否适合你的程序.一起来了解了解吧.   使用明确.统一的标明和列名,例如 School, SchoolCourse, CourceID. 数据表名使用单数而不是复数,例如 StudentCourse,而

20个数据库设计最佳实践

数据库设计是整个程序的重点之一,为了支持相关程序运行,最佳的数据库设计往往不可能一蹴而就,只能反复探寻并逐步求精,这是一个复杂的过程,也是规划和结构化数据库中的数据对象以及这些数据对象之间关系的过程.下面给出了20个数据库设计最佳实践,当然,所谓最佳,还是要看它是否适合你的程序.一起来了解了解吧. 使用明确.统一的标明和列名,例如 School, SchoolCourse, CourceID. 数据表名使用单数而不是复数,例如 StudentCourse,而不是StudentCourses. 数

001_《Delhpi6数据库设计思想与实践》

<Delhpi6数据库设计思想与实践> Delphi 教程 系列书籍 (001) <Delhpi6数据库设计思想与实践> 网友(邦)整理 EMail: shuaihj@163.com 下载地址: Part1 Part2   作者=林华聪等编著 页数=460 出版日期=2002年11月第1版   内容简介: 本书是使用Delphi作为数据库应用程序的软件开发工具的专题介绍,基本涵盖了使用Delphi进行数据库应用编程的所有关键技术.本书坚持理论和实践相结合.方法和工具相结合.工具的使

MySQL 的 20+ 条最佳实践_Mysql

数据库操作是当今 Web 应用程序中的主要瓶颈. 不仅是 DBA(数据库管理员)需要为各种性能问题操心,程序员为做出准确的结构化表,优化查询性能和编写更优代码,也要费尽心思. 在本文中,我列出了一些针对程序员的 MySQL 优化技术. 在我们开始学习之前,我补充一点:你可以在 Envato Market 上找到大量的 MySQL 脚本和实用程序. 1.优化查询的查询缓存 大部分MySQL服务器都有查询缓存功能.这是提高性能的最有效的方法之一,这是由数据库引擎私下处理的.当同一个查询被多次执行,结

数据库优化的最佳实践

在许多很好的例子,技术和方法被世界上最好的数据库性能专家所高荐.我们将讨论提高数据库性能的最常用的方法,而不是评论或建议任何特定的工具或技术. 1)谨慎而有效地使用索引 选择合理的索引(前缀性及可选性).删除没有用的索引. 2)使用规范化,但不要使用过头 规范化(至少是第三范式)是一个易于理解且标准的方法.然而,在有些情况下,你可能希望违反这些规则.查询表通常是规范化的产物,也就是说,你创建了一个特殊的表,这个表包含了在其他表中被频繁使用的相关信息的列表.然而,当使用那些经常被访问且分布有限(仅

mysql 单机数据库优化的一些实践_Mysql

数据库优化有很多可以讲,按照支撑的数据量来分可以分为两个阶段:单机数据库和分库分表,前者一般可以支撑500W或者10G以内的数据,超过这个值则需要考虑分库分表.另外,一般大企业面试往往会从单机数据库问起,一步一步问到分库分表,中间会穿插很多数据库优化的问题.本文试图描述单机数据库优化的一些实践,数据库基于mysql,如有不合理的地方,欢迎指正. 1.表结构优化 在开始做一个应用的时候,数据库的表结构设计往往会影响应用后期的性能,特别是用户量上来了以后的性能.因此,表结构优化是一个很重要的步骤.

京东MySQL数据库Docker化最佳实践(附PPT)

讲师介绍  刘风才 京东资深数据库专家     2012年加入京东,担任MySQL DBA一职,负责数据库架构设计.数据库性能优化等日常运维工作,参与过分布式数据库项目.多中心交易项目等. 2013~2016连续4年作为MySQL数据库618.11.11项目DBA负责人,负责相应备战工作,为大促平稳护航.   演讲大纲: 京东Docker技术发展历程 MySQL数据库为何要Docker化 MySQL数据库Docker化前准备工作 遇到的问题与解决方案 总结与展望   京东MySQL数据库Dock

5种微型移动网站设计的最佳实践

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 随着智能手机和平板电脑的的爆炸,越来越多的人比以往任何时候都恋上了移动网络,对于seo优化而言,移动优化设备的登陆页面,经验欠缺,导致seo在移动优化方面欠缺很多,对于优化而言,移动优化是不是太复杂太难转移?事实证明,并非如此,五个简单的微型设计和大家一起学习下: 1.留比例 微型移动设计提供了大量的高价值互动内容,从优化角度分析用户最早关注

5大移动网页设计之最佳实践

本文来自SocialBeta内容贡献者wisp,原文译自Mobile Web Design: Best Practices,更多移动产品设计方面的资料,请查看SocialBeta移动互联网栏目. 移动设备的兴起正在给互联网带来一场新的革命,虽然说移动网页设计原则不会有多大变化,但是却有着明显的区别. 至少有一点是截然不同的,目前移动设备的网络速度可比不上宽带,另外移动网页呈现方式也是多样的,有触摸屏,有上网本,这些小屏幕却貌似巨人! 可能有些人会认为移动化其实根本没必要,但是几乎所有人都得承认这