mysql高级

1.索引

  1. 优缺点:

   优:提高检索效率,降低IO成本。通过索引排序,降低cpu消费。

   :索引需要占用空间,降低表更新效率

      2.索引结构

          1) B+Tree:

              相比B-Tree:所有的数据只存在叶子节点。叶子节点形成单向链表

    mysql对数据结构B+Tree进行了优化,增加了一个指向相邻叶子节点的链表指针,形成了带有顺序的B+Tree

2)hash索引

特点:

    1. 因能用于对等比较(=,in),不能用于范围查询(like >)
    2. 无法进行排序操作
    3. 查询效率高,通常只需要一次查找

             Memory支持Hash索引   

3)为什么使用B+Tree?

           相比于二叉树,层数少,效率高。

           相比B-Tree,B+Tree只把数据存于叶子节点,可以降低树的高度,提高性能

           相比Hash,支持排序,范围查找

 

      

  1. 引擎

常用引擎对比

特点 InnoDb MyISAM Memory
事务 支持 - -
锁机制 行锁 表锁 表锁
B+Tree索引 支持 支持 支持
Hash索引     支持
空间使用  
内存使用 中等
批量插入速度
外键 支持    

InnoDB:默认存储引擎,支持事务,外键。如果对事务的完整性要求高,要求数据一致性,数据库出来插入,查询,还包含许多修改删除,那么选择此引擎。

MyISAM:如果以读和插入为主,只进行少量的修改,删除,对事务的完整性,并发性要求不高,可以选择。

Memory:将数据存储内存中,访问速度快。缺陷:表过大可能内存不够。

posted @ 2023-03-07 14:23  是小梦啊  阅读(57)  评论(0)    收藏  举报