MySQL之存储引擎(2)
发布时间:2021-06-08
发布时间:2021-06-08
使用多表空间存储,需设置参数innodb_file_per_table,并重启服务才可生效,只对新建表有效 MEMORY
该存储引擎使用存在于内存中的内容来创建表,每个表实际对应一个磁盘文件,格式为.frm;这类表因为数据在内存中,且默认使用HASH索引,所以访问速度非常快;但一旦服务关闭,表中的数据会丢失。
每个MEMORY表可以放置数据量的大小受max_heap_table_size系统变量的约束,初始值为16MB,可按需求增大;此外,在定义MEMORY表时可通过MAX_ROWS子句定义表的最大行数。
该存储引擎主要用于那些内容稳定的表,或者作为统计操作的中间表;对该类表需谨慎,因为数据并没有实际写入磁盘,一旦重启,则会丢失。
MERGE
该引擎是一组MyISAM表的组合,这些表必须结构相同,MERGE表本身没有数据;对MERGE表查询、更新、删除操作实际上是对内部实际MyISAM表进行的;对于MERGE表的插入,是通过INSERT_METHOD子句定义插入的表,可以有3个不同的值,使用FIRST/LAST值使得插入操作被相应地作用在第一个或最后一个表上,不定义这个子句或定义为NO表示不能对这个MERGE表执行插入操作。
DROP操作只是删除MERGE地定义,对内部表没有任何影响。
MERGE表在磁盘上保存为两个文件,文件名以表名开始,.frm文件存储表定义,.MRG文件包含组合表地信息,如:由那些表组成、插入新记录时的依据。
MERGE表不能智能的将记录插入对应的表中,而分区表可以,这是两者的区别。
MySQL: MyISAM和InnoDB的区别
InnoDB和MyISAM是在使用MySQL最常用的两个表类型,各有优缺点,视具体应用 而定。基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyISAM类型的表强调的是性能,其执行数度比InnoDB 类型更快,但是不提供事务支持,而InnoDB提供事务支持已经外部键等高级数据库功能。 移值性:
MyISAM类型的二进制数据文件可以在不同操作系统中迁移。也就是可以直接从Windows系统拷贝到linux系统中使用。
MyIASM是IASM表的新版本,有如下扩展:
二进制层次的可移植性。
NULL列索引。
对变长行比ISAM表有更少的碎片。
支持大文件。
更好的索引压缩。
更好的键吗统计分布。
更好和更快的auto_increment处理。
支持全文搜索,不过它们是事务不安全的,而且也不支持外键。如果事务回滚将会造成不完全回滚,从而不具备原子性。
读锁和写锁是互斥的,从而读写操作是串行的,MyISAM表不太适合于有大量更新操作和查询操作应用的原
上一篇:含酚废水处理技术的进展及技术简述
下一篇:节能减排宣传稿