建表语句

  1. create table t_class
  2. (
  3. id int primary key,
  4. name varchar(255) not null
  5. )
  6. engine=InnoDB default charset=utf8; --指定引擎InnoDB

MyISAM

Engine: MyISAM
Support: YES
Comment: MyISAM storage engine
Transactions: NO
XA: NO
Savepoints: NO

MyISAM这种存储引擎不支持事务。
MyISAM是mysql最常用的存储引擎,但是这种引擎不是默认的。
MyISAM采用三个文件组织一张表:
xxx.frm(存储格式的文件)
xxx.MYD(存储表中数据的文件)
xxx.MYI(存储表中索引的文件)
优点:可被压缩,节省存储空间。并且可以转换为只读表,提高检索效率。
缺点:不支持事务。

InnoDB

Engine: InnoDB
Support: DEFAULT
Comment: Supports transactions, row-level locking, and foreign keys
Transactions: YES
XA: YES
Savepoints: YES

优点:支持事务、行级锁、外键等。这种存储引擎数据的安全得到保障。
表的结构存储在xxx.frm文件中
数据存储在tablespace这样的表空间中(逻辑概念),无法被压缩,无法转换成只读。
这种InnoDB存储引擎在MySQL数据库崩溃之后提供自动恢复机制。
InnoDB支持级联删除和级联更新。
InnoDB:聚集索引-叶子节点包含了完整的数据记录。
MylSAM:非聚集索引-索引文件和数据文件是分离的。

InnoDB索引的实现:**

  • 表数据文件本身就是按B+Tree组织的一个索引结构文件。
  • InnoDB表推荐使用整形的自增主键。

MEMORY

Engine: MEMORY
Support: YES