《深入理解Mysql》之存储引擎简介

ISAM(Index Sequential Acess Method)

主要用于读远大于写的环境下
优点:查询速度非常快 占用内存等资源少
缺点:不支持事物,没有索引和锁功能,且无法容错,使用时要注意备份数据

MYISAM(是ISAM的升级版本)


    新增功能:索引、锁(用来优化并发性能)
    由于加入了锁所以经常要使用 OPTIMIZE TABLE命令释放被更新操作占用的空间
    MYISAM擅长快速读取所以常用于web开发中
    缺点:不能数据容错依然要手动备份数据,不支持事物
    运行该引擎会产生3类文件,
    1、.frm的表结构文件 
    2、.MYD 表数据文件
    3、.MYI 表索引文件

Innodb
    

 相比于前两种引擎,innodb查询慢一些,但是支持实物和外键,支持行锁
    Innodb专门为处理大批量数据为设计,cpu利用率高
    优点:
    1、支持事物(每条sql默认都是一个事物,效率慢,所以建议把多个sql语句放入到begin transaction 和 commit中)
    2、数据库多版本读取(Innodb+MYISAM+ISAM都支持)
    3、锁机制的改进
    4、支持外键(如果把包含外键的Innodb表转换为MYISAM会失败)


MYISAM和Innodb

Innodb是聚集索引,索引文件和数据文件在一起,索引建表必须要有主键
通过主键检索数据效率很高
但是辅助索引检索数据需要先检索到主键,然后通过主键再检索到数据
MYISAM是非聚集的,索引文件和数据文件是独立的,主键索引和辅助索引是独立的
Innodb不保存数据的行数,执行select count(*) from ...时进行权标扫描,
而MYISAM则通过一个变量保存这个表的行数
Innodb不支持全文索引,MYISAM支持全文索引,查询效率上高于MYISAM

选择策略

 1、如果没有特殊需求就使用默认的Innodb
 2、如果不需要支持事物且读远大于写则可以考虑MYISAM


引擎相关命令

1、查看当前数据支持的引擎
    show engines    
2、查看默认数据库引擎
    show variables like '%storage_engine%'
3、 查看某张表所用的存储引擎
    show create table tableName
4、创建表时指定存储引擎
    create table t1 (id int) engine=engin_name(MYISAM/INNODB)
5、修改存储引擎
    alter table t1 engine=INNODB 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值