[数据库] MySql知识点总结
MySQL的总体架构如下图所示 包括数据库连接器、连接池、SQL接口、解析器、优化器、缓存、存储引擎的等。其中常用的存储引擎为Innodb和MyISAM。Innodb有如下特点: 使用Table Space的方式进行数据存储,表现为 /var/lib/mysql/ibdata1 文件和 /var/lib/mysql/ib_logfile0 文件; 支持事物、外键约束等数据库特性; 支持行级锁(Row level lock),读写性能都非常优秀; 能够承载大数据量的存储和访问; 拥有自己独立的缓冲池,能够缓存数据和索引 在关闭自动提交的情况下,与MyISAM引擎的速度差异不大; MyISAM存储引擎具有如下特点: 数据存储方式简单,使用B+ Tree进行索引; 使用三个文件定义一个表: .MYI .MYD .frm; 少碎片、支持大文件、能够进行索引压缩; 二进制层次的文件可以移植(Linux->Windows); 访问速度飞快,是所有MySQL文件引擎中速度最快的; 不支持一些数据库特性,比如事物、外键约束等; 表级别锁(Table level lock),性能稍差,更适合读多的操作; 表数据容量有限,一般建议单表数据量介于50W~200W之间; 增删改查操作完后要使用myisamchk检查优化表; Innodb的逻辑存储结构如下所示: 逻辑上所有数据都存放在一个表空间中