数据表的类型

数据库引擎详解

一、常用数据库引擎

  • InnoDB:MySQL 默认引擎
  • MyISAM:早期使用,现在较少用

二、MyISAM 与 InnoDB 区别

对比项 MyISAM InnoDB
事务支持 不支持 支持
数据行锁定 不支持 支持
外键约束 不支持 支持
全文索引 支持 不支持
表空间大小 较小 较大(约 2 倍)

三、常规使用选择

  • MyISAM
    • 节约空间
    • 速度快
  • InnoDB
    • 安全性高
    • 支持事务处理
    • 适合多表、多用户操作

四、物理存储位置

  • 所有数据库文件都存放在 MySQL 的 data 目录下
  • 本质:文件形式存储

五、引擎在物理文件上的区别

InnoDB

  • .ibd:数据 + 索引(MySQL 8.0)
  • 公共文件:ibdata1

老版本有 .frm(表结构),MySQL 8.0 已合并

MyISAM

  • .sdi:表结构文件(MySQL 8.0,替代 .frm
  • .MYD:数据文件
  • .MYI:索引文件

六、建表示例(指定引擎)

CREATE TABLE IF NOT EXISTS `school`.`teacher` (
  `id`       INT(4)      NOT NULL AUTO_INCREMENT COMMENT '教师ID',
  `name`     VARCHAR(30) NOT NULL DEFAULT '匿名'    COMMENT '姓名',
  `pwd`      VARCHAR(20) NOT NULL DEFAULT '123456'  COMMENT '密码',
  `sex`      VARCHAR(2)  NOT NULL DEFAULT '女'      COMMENT '性别',
  `birthday` DATETIME             DEFAULT NULL      COMMENT '出生日期',
  `address`  VARCHAR(100)         DEFAULT NULL      COMMENT '家庭住址',
  `email`    VARCHAR(50)          DEFAULT NULL      COMMENT '邮箱',
  PRIMARY KEY (`id`)
) ENGINE=MYISAM DEFAULT CHARSET=utf8;

七、设置表字符集编码

CHARSET=utf8
  • 不设置:默认使用 latin1不支持中文
  • 配置文件设置(不推荐):
    my.ini 中添加
    character-set-server=utf8
    
posted @ 2026-04-09 00:15  果子同志  阅读(6)  评论(0)    收藏  举报