mysql存储引擎

来源:互联网 发布:招远淘宝小镇 编辑:程序博客网 时间:2024/06/03 18:32

Mysql存储引擎概念

MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能。(引自百度百科)

mysql创建表时可指定使用的数据库引擎(ENGINE=InnoDB)例如:

CREATE TABLE `goods` (  `id` int(10) NOT NULL AUTO_INCREMENT COMMENT 'id',  `glname` varchar(64) COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT '商品名称',  `count` int(10) NOT NULL DEFAULT '0' COMMENT '数量',    `status` tinyint(2) NOT NULL DEFAULT '1' COMMENT '状态,0:删除,1:正常',  `createtime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '插入时间',  PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='商品表';

show engines;

Engine:存储引擎的名称。
Support:存储引擎是否可用,YES可用,NO不可用,DEFAULT默认的存储引擎。
Comment:存储引擎的说明注释。
Transactions:是否支持事务。
XA:是否支持分布式事务处理。
Savepoints:保存点,是否支持部分事务回滚。

字段名称:


存储引擎介绍:

1.InnoDB(默认存储引擎)

InnoDB是应用最广泛的、支持事务型的存储引擎,有四个级别的数据库隔离级别,有行级锁定和外键约束
mysql数据库隔离级别(默认隔离级别):
Read Uncommitted(读取未提交内容)、Read Committed(读取提交内容)、Repeatable Read(可重读)、Serializable(可串行化) 隔离级别脏读不可重复读幻读Read Uncommitted



Read Committed
X

Repeatable Read
XX
Serializable
XXX
1.数据存储在表空间,采用MVCC(Multi-Version Concurrent Control,即多版本并发控制)支持高并发。
2. 支持事务。
3. 可以从灾难中恢复(通过bin-log日志等)。
4. 外键约束(foreign key
5. 支持自动增加列属性auto_increment。
2.MyISAM

MyISAM   这种存储引擎不支持事务和行级锁,有一个缺陷崩溃后无法安全恢复。

不支持外键。

如果数据存储到表中之后不需要进行修改,则适合使用MyISAM的压缩表,极大的减少了磁盘的占用,减少了磁盘I/O,提高查询效率。

MyISAM加锁是对整张表加锁,而不是针对行。(读取时,把读取到的所有的表加共享锁。写入时,把表加排它锁)

3. Memory

数据存储在内存,因此对于需要快速访问数据,并且重启以后数据丢失也没关系的数据,适合采用Memory引擎,用于保存中间产生的数据。

表级锁,要求存储的数据格式大小是一定的,因此TEXT,BLOB数据类型没法使用。

4.CSV

可以将普通的CSV文件(逗号分隔)作为mysql数据库的表操作,但是不支持索引。


5.Archive


支持行级锁,只支持insert和select操作,Arichive引擎会缓存所有写并利用zlib对插入的行进行压缩。但每次select都需要进行全表扫描,因此适合日志分析或者数据收集这类需要扫描全表的操作,或者需要快速insert的情况。

6.Performance_Schema

Performance_Schema引擎用来收集数据库服务器的性能参数,用户不能创建存储该类型的表。

7.BlackHole

没有实现任何的存储机制,会丢弃掉所有插入的数据,服务器会记录下BlackHole表的日志,所以可以用于复制数据到备份数据库。

8. Federated

Federated存储引擎是访问MySQL服务器的一个代理,会创建到远程mysql服务器的客户连接,并将查询传输到远程服务器执行。尽管Federated引擎看起来提供了一个很好的跨服务器的灵活性,但是经常带来问题,默认是禁用的。


原创粉丝点击