mysql常用存储引擎
2016-04-14 21:07
501 查看
一.简介
插件式存储引擎:使存储引擎的加载和移出更为方便,也使自行开发存储引擎更为简单方便。主要有:MyISAM ,Inodb ,NDB Cluster ,Maria ,Falcon,Memory,Archive,Merge,Federated等,其中MyISAM ,Inodb
使用最为广泛,MyISAM是Mysql默认引擎。Inodb最大的特点是提供了事务控制等特性,NDB Cluster虽然也支持事务,但是主要应用于
分布式环境,Memory存储引擎所有数据和索引存储于内存中,所以主要用于一些临时表,或者对性能要求极高,但是允许丢失数据的场景下;
Archive 是一个数据经过高比例压缩存放的存储引擎,主要用于存放过期而且很少访问的历史信息,不支持索引。
二.MyISAM存储引擎简介
MyISAM支持一下三种类型索引:
1.B-Tree索引索引节点都按照B树的数据结构来存储,所有索引节点都在叶节点。但是参与一个索引的所有字段长度之和不能超过1000字节。
2.R-Tree索引
主要涉及用于为存储空间和多位数据的字段做索引。
3.Full-Text索引
全文索引,存储结构是B树,为了解决在我们需要用like查询的低效问题。
特性:
1.不支持事务。2.表级锁定:锁定机制是表级索引,这虽然可以让锁定的实现成本很小但是也同时大大降低了其并发性能。
3.读写互相阻塞。
4.只会缓存索引:MyISAM可以通过key_buffer缓存以大大提高访问性能减少磁盘IO,但是这个缓存区只会缓存索引,而不会缓存数据。
三.InnoDB存储引擎简介
特点:
1.支持事务安全,实现了SQL92标准定义的所有四个级别(未提交读,提交读,可重复读,串行读)。2.数据多版本读取
Innodb在事务支持的同时,为了保证数据的一致性和并发时候的性能,通过undo信息,实现多版本读取。
3.锁定机制的改进
InnoDB实现了行锁,行锁机制的实现是通过索引来完成的。
4.实现外键
实现了外键引用,使在数据库端控制部分数据的完整性成为可能。
5.读写阻塞与事务隔离级别相关。
6.可以缓存索引,也可以缓存数据。
四.NDB Cluster存储引擎简介
NDB Cluster存储引擎主要用于MySql Cluster分布式集群环境。特点:
1.分布式:分布式存储引擎,可以由多个NDB Cluster存储引擎组成集群分别存放整体数据的一部分。2.支持事务。
3.可与mysqld不在一台主机:可以和mysqld分开存在于独立的主机上,然后通过网络和mysqld通信交互。
4.内存需求量巨大:新版本索引以及被索引的数据必须存放在内存中,老版本所有数据和索引必须存在与内存中。
相关文章推荐
- MySQL中的integer 数据类型
- MySQL存储过程
- mysql中int、bigint、smallint 和 tinyint的区别与长度
- mysql load data 导出、导入 csv
- source命令执行SQL脚本文件
- MySQL创建用户及权限控制
- MySQL管理数据表
- linux下mysql添加用户
- mysql procedure
- mysql触发器
- MySQL 备份和恢复策略
- mac下安装mysql(转载)
- mysql 修改编码 Linux/Mac/Unix/通用(杜绝修改后无法启动的情况!)
- MySQL数据的导出、导入(mysql内部命令:mysqldump、mysql)
- mysql数据行转列
- Linux下修改MySQL编码的方法
- MySQL Server 日志
- MySQL 安全事宜
- MySQL 备份与恢复