优化目的mysql
- 减小数据冗余(尽可能) - 尽可能避免数据维护中出现更新、插入和删除等异常 - 插入:若是表中的某个实体随着另外一个实体而存在 - 更新:若是更改表中的某个实体的单独属性时,须要对多表进行更新 - 删除:若是删除表中的某一时则会致使其余实体的消失
需求分析sql
逻辑分析数据库
物理设计segmentfault
维护优化安全
范式化并发
反范式化数据库设计
本篇重点解释物理设计、范式化与反范式化化各自优缺点;其余将在文章《数据库优化》系列一一讲明;
范式化设计的优缺点性能
优势优化
缺点设计
反范式化设计的优缺点
优势
缺点
设计范式化要求的三范式:
第一范式
第二范式
第三范式
物理设计的内容
定义数据库、表及字段的命名规范
存储引擎 | 事务 | 锁粒度 | 主要应用 | 忌用 |
---|---|---|---|---|
MyISAM | 不支持 | 支持并发插入的表级锁 | SELECT、INSERT | 读写操做频繁 |
MRG_MYISAM | 不支持 | 支持并发插入的表级锁 | 分段归档,数据仓库 | 全局查找过多的场景 |
Innodb | 支持 | 支持MVCC的行级锁 | 事务处理 | 无 |
Archive | 不支持 | 行级锁 | 日志记录,只支持insert,select | 须要随机读取,更新,删除 |
Ndb cluster | 支持 | 行级锁 | 高可用性 | 大部分应用 |
为表中的字段选择合适的数据类型(数据页)
如何为Innodb选择主键
相关连接
《数据库优化之实例和故事》、《 数据库优化之什么影响性能》
做者:不动峰
博客园: http://www.cnblogs.com/mylly/ 版权全部,欢迎保留原文连接进行转载:)