MySQL存储引擎

首先找到MySQL的中数据文件的存储位置:show global variables like "%datadir%";

MyISAM存储引擎 :

  1. 建表时可指定数据文件、索引文件的存储位置
  2. 单表最大支持的数据量是2的64次方条记录
  3. 每个表最多可建64个索引
  4. 每个复合索引最多包含64个列,索引值的最大长度是1000B
CREATE TABLE test_myisam(
	a INT UNSIGNED,
	b VARCHAR(20),
	c CHAR(32)
)ENGINE=MYISAM;

产生了3个文件:

 .MYI文件存储索引,.MYD文件存储数据。

MyISAM引擎的存储格式:

  1. Fixed:定长\静态,只要字段中不包含VARCHAR、TEXT、BLOB。更稳定,速度更快。
  2. Dynamic:动态,只要字段中包含了VARCHAR、TEXT、BLOB。占用空间小。
  3. Compressed:压缩,使用myisampack创建

CREATE TABLE test_myisam1(
	a INT UNSIGNED,
	b CHAR(20),
	c CHAR(32)
)ENGINE=MYISAM;

  show table status like 'test_myisam';  用于检查表状态。

CREATE TABLE test_myisam(
	a INT UNSIGNED,
	b VARCHAR(20),
	c CHAR(32)
)ENGINE=MYISAM;

 ③也可把包含变长字段的表人为设置成定长的:

CREATE TABLE test_myisam2(
	a INT UNSIGNED,
	b CHAR(20),
	c CHAR(32)
)ENGINE=MYISAM ROW_FORMAT=FIXED;

 InnoDB存储引擎:

  1. 支持事务:服务崩溃时能恢复,最大限度保护用户数据
  2. 支持行级锁:提升多并发时的读写性能
  3. 支持外键保证数据一致性和完整性
  4. 有自己独立的缓冲池,常用的数据和所有都在缓存中
  5. 对于INSERT、UPDATE、DELETE操作,InnoDB会用一种change buffering机制来自动优化,还可提供一致性的读,还能缓存更多变更的数据,减少磁盘I/O,提高性能。
  6. 所有表都需要创建主键,最好是配合AUTO_INCREMENT使用。
CREATE TABLE test_innodb(
	a INT UNSIGNED,
	b CHAR(20)
);

 产生一个文件:

 .ibd文件包含了数据和索引。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值