mysql 常用存储引擎(myisam,innodb)
5.5版本之后默认存储引擎为 innodb
myisam存储引擎
不支持事务和外键,表储存三个文件,(.frm:储存表定义 MYD:存储数据 MYI:存储索引),数据和索引放置在不通的目录,平均分布IO获得更快的速度。
三种存储格式: 静态表(默认)固定长度 动态表 压缩表
innodb存储引擎
数据本身都是以聚簇索引的形式保存,本身没有索引会自动创建长度为6字节的long类型的隐藏字段作为索引
存储方式 1.使用共享表的空间存储,这种表结构保存在(.frm)文件中数据索引保存在innodb_data_home_dir和innodb_data_file_path定义的表空间中,可以多个文件
2.使用多表空间存储,这种方式创建的表结构仍然存在(.frm),但每个表地数据和索引单独保存在(.idb)中,如果分区表,则分区表对应单独的(.idb)文件,文件名‘表名加分区名’
要设置多表空间存储,需要设置参数innodb_file_per_table为on(5.7默认也是多表空间存储方式)
存储引擎的选择
innodb 除了插入和查询以外,还包含更多的更新删除,有效降低由于删除和更新导致的锁定,确保事务的完整提交和回滚的计费系统。
事务
innodb不存