MySQL的存储引擎

MySQL的存储引擎:数据库

Innodb引擎(MySQL5.6默认的存储引擎)服务器

特色:
	1)支持事务、支持崩溃修复。
	2)支持行级锁,写操做不会锁定全表,故在高并发的状况下,使用Innodb引擎会提高效率。
		注意:InnoDB的行级锁是经过在索引上加锁来实现的,因此只有经过明确的索引来查找数据时才会使用行级锁。
	3)支持外键
	4)MySQL5.6以前不支持全文索引(FULLTEXT),MySQL5.6后支持全文索引。
	5)支持自动增加列,此列必须为主键,值必须惟一且不能为空。
		注意:insert时,若将主键set为0或NULL,则保存这条数据时,主键的值会自动设置为自增后的值。
	6)没有存储表的行数,SELECT COUNT(*) FROM TABLE 时须要扫描全表。
	
	7)会在内存中创建缓冲池,用于缓冲数据和索引。
	
	针对数据库中高并发的写(从库不必定能及时追的上),建议经过多实例分库分表架构来解决。
		
缺点:读写效率与MyIASM比相对较差,占用的磁盘空间比较大。

应用:
	1)须要使用事务的表。
	2)对自动灾难恢复有要求的表。
	3)高并发,更新操做比较多的表。

MyIASM引擎:架构

特色:
	1)锁的粒度是表级别的,不支持行级锁,故写操做(insert、update)须要锁定整个表。
	2)不支持事务
	3)不支持外键
	4)支持全文索引
	5)MyIASM表保存成文件形式,跨平台使用比较方便。
	6)存储了表的行数,SELECT COUNT(*) FROM TABLE 时能够直接读取已存储的值而不须要进行全表扫描。
	
	
应用:
	表的读操做远远多于写操做而且不须要数据库事务的支持。

Memory引擎:并发

特色:
	数据存放在内存上,一旦服务器关机,数据将再也不存在
	访问速度快
	索引类型支持哈希索引、BTree索引。

应用:要求快速访问的临时数据,而且容许数据的丢失。

CSV(Comma-Separated Values)引擎:高并发

特色:以csv文件的形式来存储数据。

others:code

# 查看数据库的版本,eg:5.6.33-log
select version();

# 查看MySQL所支持的存储引擎
show engines;

# 查看MySQL默认的存储引擎
show variables like "%storage_engine%";

# 查看数据库的data目录
show variables like "datadir";

# 查看数据库当前链接进程的信息
show processlist;

# 查看数据库事务的隔离级别,MySQL默认为:REPEATABLE-READ
select @@tx_isolation

# 查看自动提交是否开启(1表示开启,0表示关闭,默认开启)
select @@autocommit
相关文章
相关标签/搜索