五、mysql存储引擎

show variable like 'table_type'; 显示系统默认存储引擎
show engineG 显示系统支持存储殷勤

====================================================
create table emp (id int,index(id)) engine=innodb default charset = utf8;  创建表时候设置默认的表存储引擎
alter table emp engine = myisam 将emp表存储引擎修改为myisam

====================================================
myisam::
1.静态表存储查询速度快,但会忽略字符串后面的所有空格
2.动态表占用空间小,但速度较慢

innodb::
1.engine = innodb
2.auto_increment 可以手动插入值,如果插入的值为null或0,那么就进行自动增长
3.alter table emp auto_increment = 100; 设置emp表的自增长从100开始
4.启动innodb
  2)修改my.ini
  将default-storage-engine=INNODB前的注释(#)去掉
  将skip-innodb这行注释(加上#)
  3)保存后重启mysql服务
5.支持外键(mysql支持外键的只有innodb)

memory::
1.内存存储,重启服务后数据丢失,但更新查询速度较快
2.max_heap_table_size 设置内存存储最大限制空间

merge::
1.大数据进行分表时可采纳使用
2.1)实例
  create table t1 (id int primary key auto_increment,name char(20),index(id)) engine=myisam default charset = utf8; 表1
  create table t2 (id int primary key auto_increment,name char(20),index(id)) engine=myisam default charset = utf8; 表2
  create table t_all (id int primary key auto_increment,name char(20),index(id)) engine=merge union=(t1,t2) insert_method=last; 联合表
  1.对t1或t2表进行数据插入或更新时候,数据同步更新到联合表
  2.联合表插入数据的时候,数据将插入到t2(事实上insert_method决定了插入到第一张还是最后一张表,但为什么不能指定表插入呢???)

tokudb::
1.待研究
原文地址:https://www.cnblogs.com/shibazi/p/3828999.html