Maison  >  Article  >  base de données  >  mysql数据库优化之表的设计和慢查询定位(1)_MySQL

mysql数据库优化之表的设计和慢查询定位(1)_MySQL

WBOY
WBOYoriginal
2016-06-01 11:52:37819parcourir

一、数据库优化包括的方面
数据库优化是一种综合性的技术,并不是通过某一种方式让数据库效率提高很多,而是通过多方面的提高,从而使得数据库性能提高。
主要包括:
1、表的设计合理化(3范式)
2、给表添加合适的索引,如何使用索引
3、分表技术(水平分割、垂直分割)
4、定时清除数据垃圾,定时碎片整理
5、多用存储过程和触发器
6、对mysql配置进行优化
7、读写分离
8、mysql服务器硬件升级。


二、数据库的设计
步骤:
1、收集信息:与该系统有关人员进行交流,充分了解数据库需要完成的任务
\
2、标识实体:具体存在的对象,名词。
比如:用户、帖子、回帖、板块

3、标识属性

\

4、标识关系:
1)一对一:两个表的主键是公共字段
2)一对多:主键和非主键建关系
3)多对一:非主键和主键建关系
4)多对多:非主键和非主键建关系
5、将E-R图转成表
1)将实体转成表,将属性转成字段
2)如果找不到一个合适的字段做主键,我们添加一个自动增长列做主键。
3)建立正确的关系


三、数据规范化


表设计出来以后,并不是最合理的结构,我们需要对表进行规范化(我们通过3范式来对表进行规范化)
先满足第一范式--再满足第二范式--再满足第三范式


1NF: 确保每列的原子性
第一范式用来规范化所有的字段,所有的字段都不可再分
注意:比如地址这个字段,如果不分类汇总、不排序,仅仅起一个字符串的作用,这时我们不拆(反3范式)


2NF: 非键字段必须依赖于键字段
如果一个关系满足1NF,并且除了主键以外其他列都依赖于该主键,则满足第二范式(2NF)


3NF: 消除传递依赖
Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn