美文网首页
数据库引擎

数据库引擎

作者: jiahzhon | 来源:发表于2020-05-21 16:14 被阅读0次

    存储引擎

    • 存储引擎主要有: 1. MyIsam , 2. InnoDB, 3. Memory, 4. Archive, 5. Federated 。
    • InnoDB
      • InnoDB 底层存储结构为B+树, B树的每个节点对应innodb的一个page,page大小是固定的,一般设为 16k。其中非叶子节点只有键值,叶子节点包含完成数据。
      • 特点:
        • 供了对数据库ACID事务的支持。
        • 设计的目标就是处理大数据容量的数据库系统。
        • 启动也比较的慢,不会保存表的行数的。
        • 当进行Select count(*) from table指令的时候,需要进行扫描全表。
        • 由于锁的粒度小,写操作是不会锁定全表的。所以在并发度较高的场景下使用会提升效率。
      • 适用场景:
        • 经常更新的表,适合处理多重并发的更新请求。
        • 支持事务。
        • 可以从灾难中恢复(通过 bin-log 日志等)。
        • 外键约束。只有他支持外键。
        • 支持自动增加列属性 auto_increment。
    • MyIASM
      • MyIASM是 MySQL默认的引擎,但是它没有提供对数据库事务的支持,也不支持行级锁和外键,因此当 INSERT(插入)或 UPDATE(更新)数据时即写操作需要锁定整个表,效率便会低一些。
      • 特点:
        • ISAM 执行读取操作的速度很快,而且不占用大量的内存和存储资源。
        • MyIASM引擎是保存了表的行数,于是当进行Select count(*) from table语句时,可以直接的读取已经保存的值而不需要进行扫描全表。
      • 适用场景:
        • 如果表的读操作远远多于写操作时,并且不需要事务的支持的。可以将MyIASM作为数据库引擎的首先。
    • 两者比较
      • 大容量的数据集时趋向于选择Innodb。因为它支持事务处理和故障的恢复。Innodb可以利用数据日志来进行数据的恢复。主键的查询在Innodb也是比较快的。

      • 大批量的插入语句时(这里是INSERT语句)在MyIASM引擎中执行的比较的快,但是UPDATE语句在Innodb下执行的会比较的快,尤其是在并发量大的时候。

      • 两种引擎所使用的索引的数据结构都是B+树。

        • MyIASM引擎,B+树的数据结构中存储的内容实际上是实际数据的地址值。也就是说它的索引和实际数据是分开的,只不过使用索引指向了实际数据。这种索引的模式被称为非聚集索引
        • Innodb引擎的索引的数据结构也是B+树,只不过数据结构中存储的都是实际的数据,这种索引有被称为聚集索引

    相关文章

      网友评论

          本文标题:数据库引擎

          本文链接:https://www.haomeiwen.com/subject/lkftahtx.html