第一章:
数据库的性能优化
- 计算机系统的优化(硬件均衡)
- SQL语句的优化(通过增加索引、设置参数让MySQL的执行计划更优)
- 架构的优化(最有效,读多写少可以设计为读写分离)
数据库发展阶段
人工管理阶段 —> 文件系统阶段 —> 数据库发展阶段
数据库的分类
关系型数据库
非关系型数据库
关系型 | 非关系型 | |
---|---|---|
优点 | 1、都是使用表结构易于维护;2、SQL语言通用,使用方便复杂操作;3、支持SQL,可用于一个表以及多个表之间非常复杂的查询。 | 1、格式灵活:存储数据的格式可以是key,value形式、文档形式、图片形式等等;2、速度快;3、高扩展性;4、成本低:nosql数据库部署简单 |
缺点 | 1、读写性能比较差;2、固定的表结构,灵活度稍欠;3、高并发读写需求,硬盘I/O是一个很大的瓶颈。 | 1、不提供sql支持,学习和使用成本较高;2、无事务处理;3、数据结构相对复杂,复杂查询方面稍欠。 |
主流版本与分支
版本:
2005年发布了 一个里程碑版本,即 MySQL 5.0 。在5.0中加入了游标、存储过程、触发器、视图和事务的支持。
2008年被Sun公司以10亿美金收购,2009年Oracle收购了Sun公司。
2010年MySQL5.5发布,InnoDB存储引擎变为MySQL的默认存储引擎。
2015年MySQL5.7GA发布,是到目前为止最新的稳定版本分支。
分支:
Percona Server,它基于InnoDB存储引擎的基础上提升了性能和易管理性,最后形成了增强版的XtraDB引擎。
MariaDB,MySQL有闭源的潜在风险,因此社区采用分支的方式来避开这个风险,用的是XtraDB引擎。
一条查询语句在数据库的处理过程
MySQL逻辑架构
MySQL逻辑架构整体分为3层:
- 第一层是客户端层(JDBC数据库连接池那些东西)
- 第二层是SQL层
- 第三层是存储引擎层
-
SQL层是MySQL的核心部分,通常也叫作核心服务层。
管理服务和工具组件:系统管理和控制工具从备份和恢复的安全性、复制、集群、管理、配置、迁移和元数据等方面管理数据库。
SQL接口组件:进行DML、DDL,存储过程、视图、触发器等操作和管理;用户SQL命令接口。
查询分析器组件:解析和验证SQL命令。
查询优化器组件:对SQL语句查询进行优化。
缓存和缓冲区:这个缓存机制是由一系列小缓存组成的。比如表缓存,记录缓存,key缓存,权限缓存等。
-
存储引擎层:
MySQL的存储引擎是插件式的。