当前位置: 首页 > 网络应用技术

MySQL存储引擎

时间:2023-03-07 15:28:32 网络应用技术

  InnoDB的数据文件本身是主要索引文件。将MyISAM的主要索引和数据分开。Auxiliary索引数据域存储相应的主密钥而不是地址的值。

  InnoDB是一个集群索引,数据悬挂在逐渐索引下。

  它是MySQL的默认交易存储引擎。只有当它要求它不支持时,它才会使用其他存储引擎考虑。

  实现了四个标准的隔离级别,并重复读取默认级别。在重复阅读到读取级别的情况下,多个版本的并发控制(MVCC)+ Next-Key锁定阻止幻影读取。

  主要索引是一个集群索引,可将数据保存在索引中以避免直接读取磁盘,因此它已大大改善了查询性能。

  内部进行了许多优化,包括从磁盘读取数据中采用的可预测读数,可以加快阅读操作并自动创建的自适应哈希索引,以及可以加速插入操作的插入缓冲区。

  支持真正的在线热备份。其他存储引擎不支持在线热备份。为了获得一致性,他们需要停止写所有表。在阅读和写作混合场景中,停止写作也可能意味着停止阅读。

  b+树作为索引结构,叶节点的数据域存储数据记录的地址。主索引和辅助索引之间没有区别,但是主索引需要关键的关键,而辅助索引的密钥索引可以重复。

  Myisam索引检索中的算法是基于B+树搜索算法搜索索引。如果存在指定的密钥,请占据数据域的值,然后以数据域的值作为地址读取相应的数据记录。

  设计很简单,数据以紧密的格式存储。您仍然可以将其用于读取数据,或者表格很小,并且可以忍受维修操作。

  提供了大量功能,包括压缩表,空间数据索引等。

  不支持事务。

  它不支持线路 - 级别锁定。它只能添加到整个表中。阅读时,您将添加您需要阅读的共享锁。

  它可以手动或自动执行检查和维修操作,但与交易恢复和崩溃恢复不同可能会导致一些数据丢失,并且维修操作非常慢。

  如果指定了delay_key_write选项,则在执行完成后立即将修改的索引数据写入磁盘,但将写入内存中的密钥缓冲区。相应的索引块将写入磁盘。可以大大提高写作性能,但是当数据库或主机崩溃时,将造成索引损害,并且需要执行维修操作。