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

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

WBOY
WBOYOriginal
2016-06-01 11:52:37852browse

一、数据库优化包括的方面
数据库优化是一种综合性的技术,并不是通过某一种方式让数据库效率提高很多,而是通过多方面的提高,从而使得数据库性能提高。
主要包括:
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: 消除传递依赖
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn