存储引擎

存储引擎

MyISAM存储引擎
-- 测试MyISAM存储引擎

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

SHOW CREATE TABLE test_myisam;
  • MySql5.5之前默认MyISAM引擎,默认MyISAM的表在磁盘中产生三个文件
    • .frm 表结构文件
    • .MYD 数据文件
    • .MYI 索引文件
  • 可以在创建的时候指定数据文件和索引文件的储存位置 只有MyISAM才支持
    • DATA DIRECTORY [=] 数据保存的绝对路径
    • INDEX DIRECTORY [=] 索引文件保存的绝对路径
  • MyISAM 单表最大支持的数据量 2的64次方记录
  • 每个表最多可以建立64个索引

  • 如果是复合索引 ,每个复合索引最多包含16个列,索引的最大长度是1000B
  • MyISAM引擎的存储格式
    • 定长 (FIXED静态)是指字段中不包含VARCHAR/TEXT/BLOB的静态表
    • 动态(DYNAMIC)是指字段中包含了VARCHAR/TEXT/BLOB的数据表
    • 压缩(COMPRESSED)myisampack工具创建

最简单最安全的数据格式,查找速度最快的,当出现崩溃时恢复最快
静态表以空间换时间

可以通过关键字ROW_FORMAT强制指定数据表的存储格式,如下代码
SHOW TABLE STATUS LIKE 'table_name' \G 可以查看表的状态

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

InnoDB存储引擎,5.5之后的默认存储引擎

  • 遵循ACID模型,支持事务,具有从服务崩溃中恢复的能力,能够最大限度的保护用户数据
    • 原子性(Atomiocity)
    • 一致性(Consistency)
    • 隔离性(Isolation)
    • 持久性(Durability)
  • 支持行级锁,可以提升多用户并发时的读写性能

  • 支持外键,保证数据的一致性和完整性
  • InnoDB拥有自己独立的缓冲池,常用的数据和索引都在缓存中
  • 对于INSERT UPDATE DELETE,InnoDB会使用一种change buffering 的机制来自动优化,还可以提供一致性的读
    并且还能够缓存变更的数据,减少磁盘的I/O来提高性能
  • 创建InnoDB表之后会产生两个文件,
    • .frm表结构文件
    • .ibd文件,数据和索引储存表空间中
  • 所有的表都需要创建主键,最好是配合上AUTO_INCREMENT,也可以放到经常查询的列作为主键
博客
32132
07-14 366
07-12 299
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值