MySQL 数据库中MyISAM 和 InnoDB 的区别
admin
2023-06-01 19:22:00
0

首先要明白,在MySQL数据库忠中的存储引擎是基于表的,而不是基于数据库的。


讲述两者区别:

    InnoDB 存储引擎,主要面向 OLTP(Online Transaction Processing,在线事务处理)方面的应用,是第一个完整支持 ACID 事务的存储引擎(BDB 第一个支持事务的存储引擎,已经停止开发)。

    特点:

行锁设计、支持外键;

支持类似于 Oracle 风格的一致性非锁定读(默认情况下读取操作不会产生锁);

    InnoDB 将数据放在一个逻辑的表空间中,由 InnoDB 自身进行管理。从MySQL4.1 版本开始,可以将每个 InnoDB 存储引擎的表单独存放到一个独立的ibd 文件中;

    InnoDB 通过使用 MVCC(多版本并发控制:读不会阻塞写,写也不会阻塞读)来获得高并发性,并且实现了 SQL 标准的 4 种隔离级别(默认为 REPEATABLE 级别);

    InnoDB 还提供了插入缓冲(insert buffer)、二次写(double write)、自适应哈希索引(adaptive hash index)、预读(read ahead)等高性能和高可用的功能;

    InnoDB 采用了聚集(clustered)的方式来存储表中的数据,每张标的存储都按主键的顺序存放(如果没有显式的在建表时指定主键,InnoDB 会为每一行生成一个 6 字节的 ROWID,并以此作为主键);

    InnoDB 表会有三个隐藏字段:除了上面提到了 6 字节的 DB_ROW_ID 外,还有6 字节的B_TX_ID(事务 ID)和 7 字节的 DB_ROLL_PTR(指向对应回滚段的地址)。这个可以通过 innodb monitor 看到;

    MyISAM 存储引擎是 MySQL 官方提供的存储引擎,主要面向OLAP(Online Analytical Processing,在线分析处理)方面的应用。

特点:

    不支持事务,支持表所和全文索引。操作速度快;

    MyISAM 存储引擎表由 MYD 和 MYI 组成,MYD 用来存放数据文件,MYI 用来存放索引文件。    

    MySQL 数据库只缓存其索引文件,数据文件的缓存交给操作系统本身来完成;

    MySQL5.0 版本开始,MyISAM 默认支持 256T 的单表数据;


最后总结一下:

    1、InnoDB支持事物,而MyISAM不支持事物;

    2、InnoDB支持行级锁,而MyISAM支持表级锁;

    3、InnoDB支持MVCC, 而MyISAM不支持;

    4、InnoDB支持外键,而MyISAM不支持;

    5、InnoDB不支持全文索引,而MyISAM支持。


相关内容

热门资讯

“自民党对华交流停滞,高市早苗... 8月7日,日本共同社报道称,自日本首相高市早苗去年11月发表涉台错误言论导致日中关系恶化以来,自民党...
银行试点午休1.5小时遭网友吐... 近日,中国建设银行恩施分行发布的一则网点试行午休的公告引发网友热议。第一财经报道,根据通知内容,自8...
电视机背光灯带改造方法 电视机的背光灯带是其最重要的组成部分之一,它能够提供良好的光照条件,让我们在观看电视时视觉更加舒适。...
电视机高压背光故障 电视机高压背光是电视机显示中的关键部分之一,是让电视机显示清晰、亮度充足的重要组成部分。然而,在实际...
电视机背光板闪烁怎么解决 背光板是电视机中一种重要的组件,一旦出现问题,可能会引起电视机的闪烁。电视机背光板闪烁的原因可能有很...
电视机背光灯不通电怎么办 当电视机背光灯不通电时,可能会导致屏幕昏暗或完全黑屏。通常情况下,这种情况可能由以下原因造成: 1...
电视机背光亮不亮怎么办 电视机背光是指电视机内部的一组照明灯,主要用来照亮电视屏幕,使得图像更加清晰。如果电视机背光亮不亮,...
上新“智习室” 学习更“丝滑” 在午休、课后等时间段,学生可以在学校做什么?除了在操场上的自由运动、参加兴趣社团等各类活动外,北京市...
AMD出手收购Taalas:解... 快科技8月7日消息,AMD正式宣布收购AI芯片初创公司Taalas,进一步强化其在AI推理领域的战略...
泵车压力表直销厂家的应用场景与... 导语 泵车压力表是混凝土泵车液压系统中的常见监测部件,用于反映泵送系统的工作压力状态。在实际应用中,...