文档章节

mysql结构优化

之渊
 之渊
发布于 2016/11/02 22:37
字数 700
阅读 38
收藏 1

影响数据库性能的因素:

数据库结构(最大的), 服务器硬件, 操作系统 ,mysql服务器配置

良好的数据库逻辑设计和物理设计,是获得高性能的基础。

设计数据库结构,不仅仅是考虑到 业务需求,还有考虑到以后需要用到的哪些查询语句进行查询,进而进行设计数据库结构。

优化数据库结构,可以使查询的语句尽量的简单。这样需要考虑很多因素的

比如进行反范式设计的时候,可以加快一些查询语句的设计,同时也会影响一些查询语句的性能。所以需要平衡各方的利益,已达到最优。

 

数据库结构优化的目的:

1,减少数据冗余 

2, 尽量避免数据维护中出现更新,插入,删除异常

插入异常:如果表中的某个实体,随着另一个实体而存在

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

删除异常: 如果删除表中的某一个实体则会导致其他实体的消失

3,解决数据存储空间,提供查询的效率

 

数据结构设计的步骤:

需求分析:

1, 全面了解产品设计的存储需求

2,数据处理需求(读取和插入等)

3,数据的安全性和完整性(包括数据的生命周期等)

 

逻辑设计: 设计数据的逻辑存储结构,

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

 

物理设计:根据所使用的数据库特点,进行表结构设计

维护优化: 根据实际情况,对索引,存储结构进行等进行优化和调整

 

设计范式:

表的设计 都是符合 第一范式的,

而第二范式 一般是 针对的是 复合主键来说得,如果只有一列是 主键,那么一般是符合第二范式的。

要求一个表中,只具有一个业务主键,符合第二范式的表中,不存在非主键列对只对只对部分主键有依赖关系。比如 有 两列的 复合主键, 表的某一个列 只依赖复合主键的某一个列,那么这样是不符合第二范式的。

第三范式是:在满足了第二范式的基础上,表中的所有列都是依赖于主键的。

比如 某一个列, 依赖于 某一个不是主键的列,那么这个表是不符合第三范式的,因为有主键传递依赖的关系,

 

 

 

 

 

© 著作权归作者所有

上一篇: mysql物理设计
下一篇: TPS,和QPS的意思
之渊
粉丝 12
博文 569
码字总数 165824
作品 0
佛山
程序员
私信 提问
【BATJ】面试必问MySQL索引实现原理

BATJ面试题剖析 1、为什么需要使用索引? 2、数据结构Hash、平衡二叉树、B树、B+树区别? 3、机械硬盘、固态硬盘区别? 4、Myisam与Innodb B+树的区别? 5、MySQL中的索引什么数据结构? 6、...

须臾之余
05/22
0
0
MySQL体系结构笔记

MySQL的体系结构是一个由多个子系统构成的层次化系统,它封装着SQL接口,查询解析器,查询优化器和查询执行引擎,缓存/缓冲机制以及一个插件式存储引擎,具体如下图所示: Connectors:一些用来与...

余二五
2017/11/15
0
0
小蚂蚁学习mysql性能优化(1)--SQL以及索引优化

性能优化之mysql优化 可以从几个方面进行优化 硬件 系统配置 数据库表结构 SQL索引 成本从高到底,效果从低到高。 如何发现有问题的SQL? 使用mysql慢查询日志对有效率问题的sql进行监控。 ...

嗜学如命的小蚂蚁
2015/09/28
115
0
MySQL数据库的性能的影响分析及其优化

MySQL数据库的性能的影响 一. 服务器的硬件的限制 二. 服务器所使用的操作系统 三. 服务器的所配置的参数设置不同 四. 数据库存储引擎的选择 五. 数据库的参数配置的不同 六. (重点)数据库的...

Panda_Jerry
2017/11/04
0
0
【揭秘】数据库面试葵花宝典,让你面试一次过

大家可以叫我老张,网名superZS!一直从事数据库行业10余年,工作于某数据库服务公司,兼数据库资深讲师,就面试中大家遇到的比较困惑的数据库问题,和刚进入数据库领域的同学们,我在这里给...

superZS
2017/07/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

gradle grovvy中的闭包

1. 无参数的闭包 //这b1就是一个闭包def b1={ println "hello b1"}//定义方法,包含闭包类型的参数def method1(Closure closure){closure()}//执行method1method1(b1) 执行结果 ...

edison_kwok
13分钟前
0
0
基于Spring Boot + Dubbo的全链路日志追踪(一)

一、 概要 当前公司后端整体架构为:Spring Boot + Dubbo。由于早期项目进度等原因,对日志这块没有统一的规范,基本上是每个项目自己管自己的日志。这也对后面的问题排查带来了很大的困难,...

明天以后
今天
6
0
安装fastdfs文件服务器步骤

1、安装libfastcommon wget https://github.com/happyfish100/libfastcommon/archive/master.zip 解压后安装 cd fastcommon-master ./make.sh ./make.sh install 2、安装 FastDFS,从sourcef......

lsjlgo
今天
3
0
MySQL 5.7 免安装版配置

下载地址:https://dev.mysql.com/downloads/mysql/ 安装步骤 1.下载zip解压到目录下 2.配置环境变量 新建系统变量:MYSQL_HOME,值:D:\DevelopmentTool\Mysql-5.7.26-winx64 修改path变量:...

华山猛男
今天
6
0
java map的遍历

//从大的角度可以分为两类Set<String> set=map.keySet();这里面还可以分为3类, 从set的角度来分 //Set<Map.Entry<String, String>> entery=map.entrySet(); public class Test { public sta......

南桥北木
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部