如何选择mysql的存储引擎
存储引擎的选取 |
|
MyISAM |
1 当大量插入数据的时候 alter table table_name disable keys;//先把索引禁用了,要不会影响插入的效率
2 事务安全, 锁行,全文索引
create table test100(id int unsigned ,name varchar(32))engine=myisam;
在这个路径下C:/ProgramData/MySQL/MySQL Server 5.5/Data/ insert into test100 select id,name from test100;
在添加完数据以后 文件的大小变大了 这个时候删除数据 Delete from test100 where id =3; 正常情况下数据的大小应该发生变化,应该是变为原来的2/3 实际上 即使删除了文件以后但是文件的大小没有发生变化
我们应该定义对myisam进行整理 optimize table test100; 所以知道这种myisam 这种索引,如果不优化的话,数据会一直增长,造成系统很卡 |
Innodb |
当大量插入数据的时候
查询和添加速度快,锁表,全文索引,MyISAM 不支持外键:myisam(optimize table table_name;对表进行碎片整理)
|
Memory |
Memory 存储,比如我们数据变化频繁,不需要入库,同时又频繁的查询和修改,我们考虑使用memory, 速度极快. 举例说明: CREATE TABLE userstate (
但是当把mysql 服务器重新启动了以后,再查的话就不见了,说明数据就只是在内存中,并没有真的入库 |