mysql的引擎简介
☆查看MySQL系统支持的存储引擎
show engines;
请注意Support 的值,Federated行对应的Support列值为NO,可以进行配置成为Yes。方法是,找到服务器安装目录下my.ini文件;记事本打开
将
skip-federated
改为
federated
保存;重启服务器。
MySQL默认引擎以前是MyISAM,后来是innoDB。查看mysql当前默认的存储引擎:
show variables like ‘%storage_engine%’;
变更默认存储引擎
变更本次会话的默认存储引擎(重启后失效),只对本会话有效,其他会话无效:
set default_storage_engine=innodb;
变更全局会话默认存储引擎(重启后失效),对所有会话有效:
set global default_storage_engine=innodb;
可以通过修改配置文件中的default-storage-engine参数来变更(不受重启影响):
default-storage-engine=MyISAM
在创建表时指定存储引擎的类型,例如:
CREATE TABLE mytable (id int, titlechar(20)) ENGINE = INNODB;
变更表的存储引擎:
ALTER TABLE engineTest ENGINE = INNODB;
mysql的引擎简介
☆Innodb支持事务处理与外键和行级锁。
☆MyISAM不支持事务处理与外键和行级锁 只提供了表锁 (读取较多)。
☆federated存储引擎,通过FEDERATED引擎创建的表只是在本地有表定义文件,数据文件则存在于远程数据库中(这一点很重要)。
☆Memory:所有数据置于内存的存储引擎,拥有极高的插入,更新和查询效率。但是会占用和数据量成正比的内存空间。并且其内容会在Mysql重新启动时丢失。
☆Archive:非常适合存储大量的独立的,作为历史记录的数据。因为它们不经常被读取。Archive拥有高效的插入速度,但其对查询的支持相对较差。
☆BlackHole:黑洞引擎,写入的任何数据都会消失,用于记录binlog做复制的中继存储!
☆CSV:逻辑上由逗号分割数据的存储引擎。它会在数据库子目录里为每个数据表创建一个.CSV文件。这是一种普通文本文件,每个数据行占用一个文本行。CSV存储引擎不支持索引。
☆MRG_MyISAM引擎(MERGE引擎)将一定数量的MyISAM表联合而成一个整体,在超大规模数据存储时很有用。是一个相同的可以被当作一个来用的MyISAM表的集合。“相同”意味着所有表同样的列和索引信息。
☆PERFORMANCE_SCHEMA存储引擎会监视MySQL服务的事件。MySQL 5.5开始新增一个数据库:PERFORMANCE_SCHEMA,主要用于收集数据库服务器性能参数。并且库里表的存储引擎均为PERFORMANCE_SCHEMA,而用户是不能创建存储引擎为PERFORMANCE_SCHEMA的表。