今天,数据库的操做愈来愈成为整个应用的性能瓶颈,Mysql优化则是一个常常要谈的问题了。html
谈起MySQL优化,我们先简单谈一下Mysql:sql
Mysql是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。数据库
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,编程
每一个数据库都有一个或多个不一样的API用于建立,访问,管理,搜索和复制所保存的数据。缓存
咱们也能够将数据存储在文件中,可是在文件中读写数据速度相对较慢。安全
因此,如今咱们使用关系型数据库管理系统(RDBMS)来存储和管理的大数据量。所谓的关系型数据库,是创建在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。服务器
RDBMS即关系数据库管理系统(Relational Database Management System)的特色:数据结构
在咱们开始学习MySQL 数据库前,让咱们先了解下RDBMS的一些术语:架构
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不一样的表中,而不是将全部数据放在一个大仓库内,这样就增长了速度并提升了灵活性。负载均衡
把数据库和Mysql了解以后,我们开始正经的讲Mysql的优化,咱们从四个方向来说Mysql优化:
(一)、MySQL表设计层面优化:结构, 字段类型, 是否知足范式, 选择那种存储引擎.
(二)、MySQL数据库功能层面:是否使用索引, 如何用索引? 是否分区分表? 是否使用内部缓存?
( 三)、MySQL数据库服务器架构层面:是否读写分离? 是否负载均衡?
(四)、业务逻辑层面:SQL, 完成一个功能要使用什么样的SQL?