没有合适的资源?快使用搜索试试~ 我知道了~
mysql常用引擎包括:MYISAM、Innodb、Memory、MERGE MYISAM:全表锁,拥有较高的执行速度,不支持事务,不支持外键,并发性能差,占用空间相对较小,对事务完整性没有要求,以select、insert为主的应用基本上可以使用这引擎。 Innodb:行级锁,提供了具有提交、回滚和崩溃回复能力的事务安全,支持自动增长列,支持外键约束,并发能力强,占用空间是MYISAM的2.5倍,处理效率相对会差一些。 Memory:全表锁,存储在内容中,速度快,但会占用和数据量成正比的内存空间且数据在mysql重启时会丢失,默认使用HASH索引,检索效率非常高,但不适用于精确查找,主要用于那些内容变化不频繁的代码表 MERGE:是一组MYISAM表的组合 。
资源推荐
资源详情
资源评论
InnorDB MYISAM INNODB
事务支持 不支持 支持
数据行锁定 不支持 支持
数据表锁定 支持 支持
外键约束 不支持 支持
全文索引 支持 不支持
表空间的大小 较小 较大,约为MAISAM的两倍
1. mysql常用引擎
mysql常用引擎包括:MYISAM、Innodb、Memory、MERGE
MYISAM:全表锁,拥有较高的执行速度,不支持事务,不支持外键,并发性能差,占用空间相对较小,对
事务完整性没有要求,以select、insert为主的应用基本上可以使用这引擎。
Innodb:行级锁,提供了具有提交、回滚和崩溃回复能力的事务安全,支持自动增长列,支持外键约束,并
发能力强,占用空间是MYISAM的2.5倍,处理效率相对会差一些。
Memory:全表锁,存储在内容中,速度快,但会占用和数据量成正比的内存空间且数据在mysql重启时会
丢失,默认使用HASH索引,检索效率非常高,但不适用于精确查找,主要用于那些内容变化不频繁的代码
表
MERGE:是一组MYISAM表的组合 。
2. MyISAM和InnorDB区别说明
2.1 事务支持
MyISAM:强调的是性能,每次查询具有原子性,其执行数度比InnoDB类型更快,但是不提供事务支持。
InnoDB:提供事务支持事务,外部键等高级数据库功能。 具有事务(commit)、回滚(rollback)和崩溃修复能
力(crash recovery capabilities)的事务安全(transaction-safe (ACID compliant))型表。
2.2 锁
InnoDB支持行级锁,而MyISAM支持表级锁,用户在操作myisam表时,select,update,delete,insert语
句都会给表自动加锁,如果加锁以后的表满足insert并发的情况下,可以在表的尾部插入新的数据。
InnoDB支持MVCC,而MyISAM不支持。
2.3 外键
InnoDB支持外键,而MyISAM不支持。
2.4 主键
MyISAM:允许没有任何索引和主键的表存在,索引都是保存行的地址。
InnoDB:如果没有设定主键或者非空唯一索引,就会自动生成一个6字节的主键(用户不可见),数据是主索
引的一部分,附加索引保存的是主索引的值。
2.5 全文索引
InnoDB不支持全文索引,而MyISAM支持。
2.6 可移植性、备份及恢复
MyISAM:数据是以文件的形式存储,所以在跨平台的数据转移中会很方便。在备份和恢复时可单独针对某
个表进行操作。
InnoDB:免费的方案可以是拷贝数据文件、备份 binlog,或者用 mysqldump,在数据量达到几十G的时候
就相对痛苦了。
2.7 存储结构
MyISAM:每个MyISAM在磁盘上存储成三个文件。第一个文件的名字以表的名字开始,扩展名指出文件类
型。.frm文件存储表定义。数据文件的扩展名为.MYD(MYData)。索引文件的扩展名是.MYI (MYIndex)。
InnoDB:所有的表都保存在同一个数据文件中(也可能是多个文件,或者是独立的表空间文件),InnoDB
表的大小只受限于操作系统文件的大小,一般为2GB。
2.8 间隙锁
InnorDB支持MVCC,Multiversion Concurrency Control 间隙锁 。
MyISAM不支持MVCC。
3. MyISAM引擎
MyIsam 存储引擎独立于操作系统,简单说就是可用在windows上使用,也可用将数据转移到Lunex操作系
统上。系统兼容性很好。这种存储引擎在建表的时候,它会创建3个文件。分别是(.frm, .MYD, .MYI)。
简单说明一下:
.frm 存储表的定义(也就是表结构)
.MYD 就是表里面的数据
.MYI存储索引
这样的划分操作系统对大文件的操作是比较慢的,这样将表分为三个文件,那么.MYD这个文件单独来存放数
据自然可以优化数据库的查询等操作。
特点:
1、不支持事务
2、不支持外键
3、查询速度很快。如果数据库insert和update的操作比较多的话采用表锁效率低(建议使用innodb)。
4、对表进行加锁
5、支持3种不同的存储方式,分别是:静态表、动态表、压缩表。
静态表:静态表的字段都是非变长类型的。优点是非常迅速,容易缓存,出现故障容易恢复;缺点是占用空
间通常比动态表多(因为存储是会按照宽度定义补足空格)。
注意:在取数据时,会将数据后面的空格都去掉,如果数据后面本身有空格,那么也会被去掉。
动态表:记录不是固定长度的,这样的优点时空间占用少;缺点:频繁的更新,删除表易造成碎片,需要定
期执行OPTIMIZE TABLE或者myisamchk-r命令来改善性能。
压缩表:因为每个记录都是单独压缩的,所以只有非常小的访问开支。
4. InnoDB引擎
InnoDB是一个事务型的存储引擎,有行级锁定和外键约束,提供了具有提交,回滚和崩溃恢复的事务安全,
但是对比MyLSAM引擎,写的效率会比差一些,并且会占用更多的磁盘空间以保存数据和索引。
特点:
1、更新多的表,适合处理多重并发的更新请求。
2、支持事务。
3、可以从灾难中恢复(通过bin-log日志等)。
4、外键约束。只有他支持外键。
5、支持自动增加列属性auto_increment。
剩余12页未读,继续阅读
资源评论
孤蓬&听雨
- 粉丝: 6798
- 资源: 301
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功