//数据表的类型及存储位置
表引擎(ENGINE)或者表类型
a) MyISAM(管理方便)
bbs_user1.frm 表结构
bbs_user1.MYI 表索引
bbs_user1.MYD 表数据
B) innoDB
test.frm 表结构
ibdatal 存储所有数据库当中所有innodb表的索引和数据(共享表空间)
C) MyISAM和innoDB的区别
1 Myisam 数据表类型(引擎)更加成熟 稳定 易于管理
2 Myisam 便会产生碎片空间 要经常使用 optimize table 来进行优化 而innodb不会
3 Myisam 不支持事物处理 而innodb支持
4 Myisam 不支持外键 innodb支持
5 Myisam 会产生三个文件 .frm(表结构) .MYI(表索引) .MYD(表数据)
6 innodb 只会产生一文件 .frm(表结构) 数据和索引全部存在共享表空间当中(iddatal)
7 Myisam(推荐使用) 效率高于 innodb
A 如果应用程序一定要使用事务 毫无疑问选择INNODB引擎 要注意 INNODB的行级锁是有条件的 在where条件没有使用主键时 照样会锁全表 比如DELETE FROM mytable这样的删除语句
B 如果应用程序对查询性能要求较高 要使用MYISAM了 MYISAM索引和数据是分开的 而且其索引是压缩的 可以更好地利用内存 所以它的查询性能明显优于INNODB 压缩后的索引也能节约一些磁盘空间 MYISAM拥有全文索引的功能 这可以极大地优化LIKE查询的效率
C 有人说MYISAM只能用于小型应用 其实这只是一种偏见 如果数据量比较大 这是需要通过升级架构来解决 比如分表分库 而不是单
MyISAM和InnoDB的存储引擎区别
最新推荐文章于 2024-07-30 16:52:36 发布