zoukankan      html  css  js  c++  java
  • MySQL存储引擎InnoDB,MyISAM

    MySQL存储引擎InnoDB,MyISAM
    1、区别:
    (1)InnoDB支持事务,MyISAM不支持,对于InnoDB每一条SQL语言都默认封装成事务,自动提交,这样会影响速度,所以最好把多条SQL语句放在begin和commit之间,组成一个事务;
    (2)InnoDB支持外键,而MyISAM不支持。对一个包含外键的InnoDB表转为MYISAM会失败;
    (3)InnoDB是聚集索引,数据文件是和索引绑在一起的,必须要有主键,通过主键索引效率很高。但是辅助索引需要两次查询,先查询到主键,然后再通过主键查询到数据。因此,主键不应该过大,因为主键太大,其他索引也都会很大。而MyISAM是非聚集索引,数据文件和索引是分离的,索引保存的是数据文件的指针。主键索引和辅助索引是独立的。
    (4)InnoDB不保存表的具体行数,执行select count(*) from table时需要全表扫描。而MyISAM用一个变量保存了整个表的行数,执行上述语句时只需要读出该变量即可,速度很快;
    (5)Innodb锁的粒度更细,支持行锁,MyISAM不支持。
    2、如何选择存储引擎
    (1)是否要支持事务,如果要请选择innodb,如果不需要可以考虑MyISAM;
    (2)如果表中绝大多数都只是读查询,可以考虑MyISAM,如果既有读写也挺频繁,请使用InnoDB;
    (3)系统奔溃后,MyISAM恢复起来更困难,能否接受;
    (4)数据量较大(3TB以上)时不要用MyISAM,崩溃后难以恢复。

    InnoDB:数据完整性,并发性处理,擅长更新,删除。
    MyISAM:高速查询及插入。擅长插入和查询。

  • 相关阅读:
    MySQL 误操作后数据恢复(update,delete忘加where条件)
    数据预处理流程
    pandas读取大量数据的分块处理
    go语言 nil一些注意的地方
    C语言编程优化运行速度
    go语言常用内置函数
    RSA加密算法
    一致性哈希算法原理
    数据服务的分布式模型
    leetcode链表题
  • 原文地址:https://www.cnblogs.com/xidian2014/p/8591877.html
Copyright © 2011-2022 走看看