引入
比如我们在创建一个user用户表的时候,常常跟上ENGINE=InnoDB,这个InnoDB就是所谓的数据库的引擎。
CREATE TABLEtab_user
(
id
bigint(20) NOT NULL,
active_flag
varchar(1) DEFAULT NULL,
birth_date
datetime DEFAULT NULL,
home_address
varchar(400) DEFAULT NULL,
phone_no
varchar(1000) DEFAULT NULL,
sex
int(11) DEFAULT NULL,
student_name
varchar(400) DEFAULT NULL,
PRIMARY KEY (id
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
变迁
在MySQL 5.1之前的版本中,默认的搜索引擎是MyISAM,从MySQL 5.5之后的版本中,默认的搜索引擎变更为InnoDB。
区别
MYISAM | INNODB | |
---|---|---|
事务支持 | 不支持 | 支持 |
数据行锁定 | 不支持(支持表锁) | 支持 |
外键约束 | 不支持 | 支持 |
全文索引 | 支持 | 不支持 |
表空间大小 | 较小 | 约为MYISAM的2倍 |
MYISAM:节约空间,速度较快
INNODB:安全性高,事务处理,多表关联查询
物理空间上存储区别
所有的数据库文件都存在data目录下,本质还是文件的存储,一个数据库就对应一个文件夹。
INNODB:
只有一个*.frm文件(…/data/school)以及上级目录下面的ibdata1文件
MYISAM:
对应文件:
*.frm:表结构的定义文件
*.MYD:数据文件
*.MYI:索引文件