数据库引擎InnoDB与MyISAM区别

MySQL的数据表的类型 :

MyISAM与InnoDB的区别:

MyISAM是MySQL的默认数据库引擎(5.5版之前)。虽然性能极佳,而且提供了大量的特性,包括全文索引、压缩、空间函数等,但MyISAM不支持事务和行级锁,而且最大的缺陷就是崩溃后无法安全恢复。不过,5.5版本之后,MySQL引入了InnoDB(事务性数据库引擎),MySQL5.5版本后默认的存储引擎为InnODB。

名称MyISAMInnoDB
事物处理不支持支持
数据行锁定不支持支持
外键约束不支持支持
全文索引支持不支持
表空间大小较小较大,约2倍

两者的对比:

1.是否支持行级锁:MyISAM 只有表级锁(table-level locking),而InnoDB支持行级锁(row-level locking)和表级锁.默认为行级锁。
2.是否支持事务和崩溃后的安全恢复: MyISAM强调的是性能,每次查询具有原子性.其执行
速度比InnoDB类型更快,但是不提供事务支持。但是InnoDB提供事务支持事务,外部键等高级数据库功能。具有事务(commit)、回滚(rollback)和崩溃修复能力(crash recovery
capabilities)的事务安全(transaction-saie (ACID compliant))型表。
3.是否支持外键:MyISAM不支持,而InnoDB支持。
4.是否支持MVCC:仅InnoDB支持。应对高并发事务,MVCC比单纯的加锁更高效;MVCC只
在READ COMMITTED和REPEATABLEREAD两个隔离级别下工作;MVCC可以使用乐观(optimistic)锁和悲观(pessimistic)锁来实现;各数据库中MVCC实现并不统一。

 使用场合:

        适合MyISAM:节约空间及相应速度

        适合InnoDB:安全性,事物处理以及用户操作数据库表

<<MYSQL高性能>>上面写着这句话:

不要轻易相信"MyISAM比InnoDB快"之类的经验之谈,这个结论往往不是绝对的。
在很多我们已知场景中,InnoDB的速度都可以让MyISAM望尘莫及,
尤其是用到了聚簇索引,或者需要访问的数据都可以放入内存的应用。

数据表的存储位置:

MySQL数据表以文件方式存放在磁盘中

      *包括表文件 , 数据文件 , 以及数据库的选项文件

     *位置 : Mysql安装目录\data\下存放数据表,目录名对应数据库名 , 该目录下文件名对应数据表 .

 InnoDB类型数据表只有一个 *.frm文件 , 以及上一级目录的ibdata1文件

 MyISAM类型数据表对应三个文件 :

 * . frm —— 表结构定义文件

 * .MYD——数据文件 ( data )

* . MYI -- 索引文件 ( index )

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

龍弟-idea

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值