欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

云计算中MySQL的存储引擎解析

程序员文章站 2022-07-28 20:38:06
MySQL的存储引擎: Innodb引擎(MySQL5.6默认的存储引擎) 特点: 1)支持事务、支持崩溃修复。 2)支持行级锁,写操作不会锁定全表...
MySQL的存储引擎:
	
Innodb引擎(MySQL5.6默认的存储引擎)

	特点:
		1)支持事务、支持崩溃修复。
		2)支持行级锁,写操作不会锁定全表,故在高并发的情况下,使用Innodb引擎会提升效率。
			注意:InnoDB表的行锁也不是绝对的,当MySQL不能确定要扫描的范围,InnoDB表同样会锁全表。eg:update table set fieldname=1 where name like "%%"
		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:

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

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

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

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

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