Mysql数据库存储引擎
2015-07-15 22:01
731 查看
Mysql中有以下几种引擎
1.MyISAM Mysql5.5之前的默认数据库引擎,最为常用。拥有较高的插入,查询速度,但不支持事务。
2.InnoDB事务型数据库的首选引擎,支持ACID事务,支持行级锁定, MySQL 5.5起成为默认数据库引擎。BDB源自Berkeley
DB,事务型数据库的另一种选择,支持COMMIT和ROLLBACK等其他事务特性,BDB被包含在为支持它的操作系统发布的MySQL-Max二进
制分发版里。
3.Memory所有数据置于内存的存储引擎,拥有极高的插入,更新和查询效率。但是会占用和数据量成正比的内存空间。并且
其内容会在Mysql重新启动时丢失。
4.Merge将一定数量的MyISAM表联合而成一个整体,在超大规模数据存储时很有用,Mysql Merge表有点类似于视图。
5.Archive非常适合存储大量的独立的,作为历史记录的数据。因为它们不经常被读取。Archive拥有高效的插入速度,但其
对查询的支持相对较差。
6.Federated将不同的Mysql服务器联合起来,逻辑上组成一个完整的数据库。非常适合分布式应用,通过这个引擎可以实现
类似Oracle 下DBLINK的远程数据访问功能。
7.Cluster/NDB高冗余的存储引擎,用多台数据机器联合提供服务以提高整体性能和安全性。适合数据量大,安全和性能要求
高的应用
8.CSV:逻辑上由逗号分割数据的存储引擎。它会在数据库子目录里为每个数据表创建一个.CSV文件。这是一种普通文本文
件,每个数据行占用一个文本行。CSV存储引擎不支持索引。
9.BlackHole :黑洞引擎,写入的任何数据都会消失,一般用于记录binlog做复制的中继。
10.EXAMPLE存储引擎是一个不做任何事情的存根引擎。它的目的是作为MySQL源代码中的一个例子,用来演示如何开始编写一
个新存储引擎。同样,它的主要兴趣是对开发者。EXAMPLE存储引擎不支持编索引。
MySql数据库引擎选型
MySQL支持多种存储引擎,在处理不同类型的应用时,可以通过选择不同的存储引擎提高应用的效率,或者提供灵活的存
储。包括:MyISAM、InnoDB、BDB(BerkeleyDB)、MEMORY、MERGE、EXAMPLE、NDB Cluster、ARCHIVE、CSV等,其中InnoDB、
BDB提供安全事务表,其他引擎都是非事务安全表。
根据不同的业务要求,在一个项目中可选择一种或者几种存储引擎混合使用。对于事务型的业务只能选择InnoDB或者BDB,如果要涉及行锁,
只能选择InnoDB,如果读的量比写的量大很多,可以采用InnoDB和MyISAM混合使用。在高可用时,读写相差不大的系统,一般采用NDB分布式内存
引擎。
1.MyISAM Mysql5.5之前的默认数据库引擎,最为常用。拥有较高的插入,查询速度,但不支持事务。
2.InnoDB事务型数据库的首选引擎,支持ACID事务,支持行级锁定, MySQL 5.5起成为默认数据库引擎。BDB源自Berkeley
DB,事务型数据库的另一种选择,支持COMMIT和ROLLBACK等其他事务特性,BDB被包含在为支持它的操作系统发布的MySQL-Max二进
制分发版里。
3.Memory所有数据置于内存的存储引擎,拥有极高的插入,更新和查询效率。但是会占用和数据量成正比的内存空间。并且
其内容会在Mysql重新启动时丢失。
4.Merge将一定数量的MyISAM表联合而成一个整体,在超大规模数据存储时很有用,Mysql Merge表有点类似于视图。
5.Archive非常适合存储大量的独立的,作为历史记录的数据。因为它们不经常被读取。Archive拥有高效的插入速度,但其
对查询的支持相对较差。
6.Federated将不同的Mysql服务器联合起来,逻辑上组成一个完整的数据库。非常适合分布式应用,通过这个引擎可以实现
类似Oracle 下DBLINK的远程数据访问功能。
7.Cluster/NDB高冗余的存储引擎,用多台数据机器联合提供服务以提高整体性能和安全性。适合数据量大,安全和性能要求
高的应用
8.CSV:逻辑上由逗号分割数据的存储引擎。它会在数据库子目录里为每个数据表创建一个.CSV文件。这是一种普通文本文
件,每个数据行占用一个文本行。CSV存储引擎不支持索引。
9.BlackHole :黑洞引擎,写入的任何数据都会消失,一般用于记录binlog做复制的中继。
10.EXAMPLE存储引擎是一个不做任何事情的存根引擎。它的目的是作为MySQL源代码中的一个例子,用来演示如何开始编写一
个新存储引擎。同样,它的主要兴趣是对开发者。EXAMPLE存储引擎不支持编索引。
MySql数据库引擎选型
MySQL支持多种存储引擎,在处理不同类型的应用时,可以通过选择不同的存储引擎提高应用的效率,或者提供灵活的存
储。包括:MyISAM、InnoDB、BDB(BerkeleyDB)、MEMORY、MERGE、EXAMPLE、NDB Cluster、ARCHIVE、CSV等,其中InnoDB、
BDB提供安全事务表,其他引擎都是非事务安全表。
[align=left]特点[/align] | [align=left]Myisam[/align] | [align=left]BDB[/align] | [align=left]Memory[/align] | [align=left]InnoDB[/align] | [align=left]Archive[/align] |
[align=left]存储限制[/align] | [align=left]没有[/align] | [align=left]没有[/align] | [align=left]有[/align] | [align=left]64TB[/align] | [align=left]没有[/align] |
[align=left]事务安全[/align] | [align=left] [/align] | [align=left]支持[/align] | [align=left] [/align] | [align=left]支持[/align] | [align=left] [/align] |
[align=left]锁机制[/align] | [align=left]表锁[/align] | [align=left]页锁[/align] | [align=left]表锁[/align] | [align=left]行锁[/align] | [align=left]行锁[/align] |
[align=left]B树索引[/align] | [align=left]支持[/align] | [align=left]支持[/align] | [align=left]支持[/align] | [align=left]支持[/align] | [align=left] [/align] |
[align=left]哈希索引[/align] | [align=left] [/align] | [align=left] [/align] | [align=left]支持[/align] | [align=left]支持[/align] | [align=left] [/align] |
[align=left]全文索引[/align] | [align=left]支持[/align] | [align=left] [/align] | [align=left] [/align] | [align=left] [/align] | [align=left] [/align] |
[align=left]集群索引[/align] | [align=left] [/align] | [align=left] [/align] | [align=left] [/align] | [align=left]支持[/align] | [align=left] [/align] |
[align=left]数据缓存[/align] | [align=left] [/align] | [align=left] [/align] | [align=left] [/align] | [align=left]支持[/align] | [align=left] [/align] |
[align=left]索引缓存[/align] | [align=left] [/align] | [align=left] [/align] | [align=left]支持[/align] | [align=left]支持[/align] | [align=left] [/align] |
[align=left]数据可压缩[/align] | [align=left]支持[/align] | [align=left] [/align] | [align=left] [/align] | [align=left] [/align] | [align=left]支持[/align] |
[align=left]空间使用[/align] | [align=left]低[/align] | [align=left]低[/align] | [align=left]不消耗空间[/align] | [align=left]高[/align] | [align=left]低[/align] |
[align=left]内存使用[/align] | [align=left]低[/align] | [align=left]低[/align] | [align=left]中等[/align] | [align=left]高[/align] | [align=left]非常高[/align] |
[align=left]批量插入速度[/align] | [align=left]高[/align] | [align=left]高[/align] | [align=left]高[/align] | [align=left]低[/align] | [align=left]非常高[/align] |
[align=left]支持外键[/align] | [align=left] [/align] | [align=left] [/align] | [align=left] [/align] | [align=left]支持[/align] | [align=left] [/align] |
根据不同的业务要求,在一个项目中可选择一种或者几种存储引擎混合使用。对于事务型的业务只能选择InnoDB或者BDB,如果要涉及行锁,
只能选择InnoDB,如果读的量比写的量大很多,可以采用InnoDB和MyISAM混合使用。在高可用时,读写相差不大的系统,一般采用NDB分布式内存
引擎。
相关文章推荐
- DATABASE CONNECTION ERROR (1): THE MYSQL ADAPTER 'MYSQLI' IS NOT AVAILABLE.解决办法
- ubuntu 重新安装mysql
- MySQL主从复制(Master-Slave)
- 【MySQL】(2)数据类型与操作数据表
- MySQL主从复制(Master-Slave)
- mysql主从数据库不同步的3种解决方法
- mysql主从数据库不同步的3种解决方法
- mysql之存储过程
- 数据库性能优化(MySQL)
- MySQL 运算符和函数
- mysql时间查询
- Mysql InnoDB行锁实现方式
- 如何远程访问mysql数据库
- Mysql中表操作删除表、清空表(主键从0开始、不从0开始的清空)
- Hibernate连接MySql遇到的几个问题
- windows下开启mysql查询日志(mysql 5.6)
- Mysql部分常用类型长度含义
- MySQL Study之--MySQL下图形工具的使用(MySQL Administrator)
- MySQL备份还原——AutoMySQLBackup介绍
- mysql 定时任务