MySQL数据库引擎的选择
什么是数据库引擎?
Mysql中的数据都是用各种不同的技术存储在文件(或内存中的)。这些技术中的每一个技术会使用不同的存储机制、索引技巧等。我们应该根据应用的不同需求,来选择合适的存储引擎,从而在合适的时机使用正确的数据库引擎,从而达到提高效率的作用。
MyISAM和InnoDB的区别
存储结构
MyISAM:每个MyISAM在磁盘上存储成三个文件。第一个文件的名字以表的名字开始,
扩展名指出文件类型。.frm文件存储表定义。数据文件的扩展名为.MYD (MYData)。
索引文件的扩展名是.MYI (MYIndex)。
InnoDB:所有的表都保存在同一个数据文件中(也可能是多个文件,或者是独立的表空间文件),
InnoDB表的大小只受限于操作系统文件的大小,一般为2GB。存储为两个文件 .frm .ibd
存储空间
MyISAM:可被压缩,存储空间较小。支持三种不同的存储格式:动态表、压缩表、
静态表(默认,但是注意数据末尾不能有空格,会被去掉)。
InnoDB:需要更多的内存和存储,它会在主内存中建立其专用的缓冲池用于高速缓冲数据和索引。
可移植性、备份及恢复
MyISAM:数据是以文件的形式存储,所以在跨平台的数据转移中会很方便。
在备份和恢复时可单独针对某个表进行操作。
InnoDB:免费的方案可以是拷贝数据文件、