MySql 各种数据库引擎的简单对比

针对MySql数据库的各种数据库引擎,根据官方的文档进行了一个简单的整理。
修改默认的数据库引擎
SET default_storage_engine = NDBCLUSTER;
修改某个数据表的数据库引擎
ALTER TABLE t ENGINE = InnoDB;
数据库引擎:
[1] InnoDB 在MySQL 5.7,InnoDB是默认的MySQL存储引擎
主要优势包括:
1)DML操作遵循ACID模型,具有commit , rollback 和 crash-recovery,保护数据的安全性;
2)具有Oracle风格的行级别的锁,增加并发时的性能;
3)表个才用主键索引的B+Tree的聚集索引,减少查找I/O,若不存在主键,则寻找一个可以唯一识别的属性作为主键,或者隐性生成一个主键
4)支持外键约束,对外键的更新进行检查
注释
1、DML
DDL:数据库模式定义语言,关键字:create
DML:数据操纵语言,关键字:Insert、delete、update
DCL:数据库控制语言 ,关键字:grant、remove
DQL:数据库查询语言,关键字:select
2、ACID
ACID,指数据库事务正确执行的四个基本要素的缩写。包含:
原子性(Atomicity)
一致性(Consistency)
隔离性(Isolation)
持久性(Durability)
[2] MyISAM
1)表的存储分为三个文件:.frm表格式;.MYD/MYData 数据文件;.MYI 索引文件;
2)行数限制 (232)2 (1.844E+19) ;
3)可能会导致文件损坏;
[3] MEMORY(HEAP
1)服务器停止或者重新启动,数据丢失;
2)一个高可用性、更新频繁的表;
[4]CSV
1)逗号分割值格式的文本型数据库;
2)不支持索引;
3)所有的列不能为空;
[5]ARCHIVE 
1)支持 INSERT, REPLACE, 和SELECT, 但不支持DELETE , UPDATE;
2)支持自增的列,但是不支持插入一个自增列一个比当前最大值小的值;
[6]BLACKHOLE 
1)支持所有类型的索引,可以自定义索引类型;
2)只有表结构,不存储任何数据;但是有日志记录
[7]MERGE
1)可以合并多个MyISAM 表
2)访问安全问题:当用户被撤销了MyISAM 表的访问权限时,仍然可以通过MERGE 表访问MyISAM 表
[8]FEDERATED
1)链接远程数据表
2)where在远程数据库执行
[9]EXAMPLE
1)一个数据库引擎开发的范例,用作写新的数据库引擎的基础
阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页