数据库优化之结构设计

简要:每一项技术都离不开数据库,数据库犹如人的大脑;密不可分,一旦出了问题(故障),停顿,卡主后果可想而知;潜心学习数据库优化3个月,现在将学到的经验分享给大家,希望能够跟各位PHP大神分享和学习探索,如果有不对或者好的建议告知下;*~*!

设计好处

1. 良好的数据库逻辑设计和物理设计师数据库获得高性能的基础

2. 范式化设计和反范式化设计(减少冗余、减少异常、让数据组织的更加和谐)

3. 优化目的

    (1) 减少数据冗余(尽量)

    (2) 尽量避免数据维护中出现更新、插入和删除等异常

        a. 插入:如果表中的某个实体随着另一个实体而存在

        b. 更新:如果更改表中的某个实体的单独属性时,需要对多表进行更新

        c. 删除:如果删除表中的某一时则会导致其他实体的消失

设计过程

1. 需求分析

        (1) 全面了解产品设计的需求

        (2) 存储需求(比如一对多,多对一等)

        (3) 数据处理需求

        (4) 数据的安全性和完整性

2. 逻辑分析

3. 设计数据的逻辑结构

4. 数据实体之前的逻辑关系,解决数据冗余和维护异常

5. 物理设计

        根据所使用数据特点设计表结构

6.维护优化

        对索引、存储结构等进行优化

7. 范式化

        设计没有数据冗余和维护异常的数据结构

8. 反范式化

        针对范式化而言的,在前面介绍了数据库设计的范式,所谓的反范式化就是为了性能和读取效率的考虑而适当的对数据库设计范式的要求进行违法,而允许存在少量的数据冗余,换句话来说反范式化就是使用空间来换取时间

本篇单单解释物理设计、范式化与反范式化各自优缺点;其他将在文章《数据库优化》系列一一讲明;

范式化与反范式化

1. 范式化设计的优缺点 

        (1) 优点

                a. 尽量减少数据冗余

                b. 范式化的更新操作比反范式化更快

                c. 范式化的表通常比反范式更小

        (2) 缺点

                a. 对于查询需要对多个表进行关联(mysql限制不能超过10张表)

                b. 更难进行索引优化

2. 反范式化设计的优缺点 

        (1) 优点

                    a. 减少表的关联

                    b. 更好进行索引优化

        (2) 缺点

                a. 存在数据冗余及数据库维护异常

                b. 对数据修改需要更多的成本

设计范式化要求的三范式:

  第一范式 

        * 数据库表中的所有字段都只具有单一属性

        * 单一属性的列是由基本的数据类型所构成的 

        * 设计及出来的表都是简单的二维表 

第二范式

        * 要求一个表中只具有一个业务主键,也就是说符合第二范式的表中不能存在非主键列对只对部分主键的依赖关系

第三范式

        * 数据不能存在传递关系,即每个属性都跟主键有直接关系而不是间接关系

物理设计

1. 物理设计的内容 

        (1) 定义数据库、表及字段的命名规范

        (2) 选择合适的存储引擎

        (3) 为表中的字段选择合适的数据类型

        (4) 建立数据库结构

2. 定义数据库、表及字段的命名规范  

        (1) 可读性原则

        (2) 表意行原则

        (3) 长名原则

3. 选择合适的存储引擎


4. 为表中的字段选择合适的数据类型(数据页) 

       当一个列可以选择多种数据类型时,应该优先考虑数字类型,其次是日期或二进制类型,最后是字符类型。对于相同级别的数据类型,应该优先选择占用空间小的数据类型

5.  如何为Innodb选择主键 

        (1) 主键应该尽可能的小

        (2) 主键应该是顺序增长的

        (3) Innodb的主键和业务主键可以不同;



相关链接 

《数据库优化之实例和故事》

作者:不动峰

博客园:http://www.cnblogs.com/mylly/

备注:现承接企业大型网站/接口/微信公众号/企业号/小程序,有意向的朋友请联系(QQ:857280707)  版权所有,欢迎保留原文链接进行转载:)

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,937评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,503评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,712评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,668评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,677评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,601评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,975评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,637评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,881评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,621评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,710评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,387评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,971评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,947评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,189评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,805评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,449评论 2 342

推荐阅读更多精彩内容