MySQL是比较常用的关系型数据库,对于使用MySQL作为存储的系统,MySQL的优化对于系统的性能至关重要,包括SQL的优化,然而要想做好优化,首先要对其总体有所了解,本文浅析了MySQL的总体架构思想,让我们更加了解MySQL。
1、插件的架构思想:
MySQL的架构是插件形式,插件的特点是热插拔,就是系统不需要停机就可以完成加载和卸载,绝大多数的插件架构如图:
MySQL的总体架构如图:
SQL Layer主要的工作是将SQL语句翻译成C++方法(函数),具体的架构如下:
我自己整理了一个下:
MySQL将存储引擎做成插件的方式,方便了不同的使用场景,但是最常用的还是支持事务的innodb引擎。
2、存储引擎:
引擎其实对于程序来说是算法集或方法集,现成可以调用的方法,不同的MySQL存储引擎的存储方式是不同的,对于支持事务的innodb存储引擎使数据满足ACID原则,MySQL自身有个表存储了一些引擎的配置:
3、SQL优化:
SQL的性能取决于操作对象的数据量大小,为了减小操作的数据量,我们通常会为表建立索引,索引在MySQL中的数据结构是B-Tree,由于B-Tree的查找性能特别好,大大地减少了我们要操作的数据量。
通常还有就是使用缓存,缓存减少了IO的操作,MySQL中有执行计划可以让我们预览我们的SQL执行效果,在SQL语句前加上explain。