mysql和存储引擎知识点整理

mysql和存储引擎知识点整理

基本概念:

    1、索引:为了快速查找(外存)而建立的数据结构。当数据很大时,因为可能本身很大,所以一般是存在外存的。

    2、存储引擎:可以认为是mysql的后端,前端是sql解析和处理;中端是sql优化等

    3、为什么b+树比红黑树好?b+树深度小,索引表的级数少,进而需要的磁盘io次数少(一次读出大量比多次读少量要快很多)

    4、事物的ACID特性:原子性(要么全执行,要么不执行)、一致性(加的和减的要一致),隔离性(并发),持久性(真的存下来)

一、sql处理过程:

    解析、加锁、核对权限、生成和执行最优查询计划(优化)、调用存储引擎来执行操作

二、mysql最核心的模块:

      查询和优化系统,存储系统,安全管理

三、myisam特点:

     1、不支持事物安全,速度快。3种文件,.MYI(索引)  .MYD(数据)  .fm(表定义)

    2、静态表,每一行长度一样速度快;动态表:尽量不超过长度,否则会产生碎片(不连续存储) 压缩 表:只读。

    3、索引 R树或B树算法;索引的内容是 索引值 索引指针

四、InnoDB:

    1、支持事物,行级别的锁;双写入,插入缓存(不是每次都磁盘io),适应式哈希索引

    2、innodb的索引实现:数据文件本身按着主key来索引,其他索引是先索引到主key,之后再用主索引去查。所以一般使用innodb时主key要unique(比如自增),不然的话维护b+树会比较费效率

五、事物的实现

    一般是利用log系统来实现。即先操作日志,后操作数据;先取得锁之后操作数据。

六、内存池中缓存的内容:

    索引页、数据页、undo页、插入缓冲(insert buffer)、自适应哈希索引(adaptive hash index)、锁信息(lock info)、数据字典信息(data dictionary)

猜你喜欢

转载自eric-weitm.iteye.com/blog/2305250