如何选择mysql的存储引擎


                                                                                  存储引擎的选取

MyISAM

1 当大量插入数据的时候

alter table table_name disable keys;//先把索引禁用了,要不会影响插入的效率
loading data//insert语句;
alter table table_name enable keys;//插入完数据以后,再启用

 

2 事务安全, 锁行,全文索引

 

create table test100(id int unsigned ,name varchar(32))engine=myisam;
insert into test100 values(1,'aaaaa');
insert into test100 values(2,'bbbb');
insert into test100 values(3,'ccccc');

 

在这个路径下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 这种索引,如果不优化的话,数据会一直增长,造成系统很卡
选择合适的数据类型
1 尽量使用定点数(decimal)也尽量不要使用float

Innodb

当大量插入数据的时候

  1. 将要导入的数据按照主键排序
    2,set unique_checks=0,关闭唯一性校验。
    3,set autocommit=0,关闭自动提交。

 

查询和添加速度快,锁表,全文索引,MyISAM 不支持外键:myisam(optimize table table_name;对表进行碎片整理)

 

Memory

Memory 存储,比如我们数据变化频繁,不需要入库,同时又频繁的查询和修改,我们考虑使用memory, 速度极快.

举例说明:

CREATE TABLE userstate (
    id INT PRIMARY KEY,
    state TINYINT
) ENGINE = memory;
Insert into userstate values(1,0);
Insert into userstate values(2,2);
Insert into userstate values(3,2);

 

但是当把mysql 服务器重新启动了以后,再查的话就不见了,说明数据就只是在内存中,并没有真的入库

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值