zoukankan      html  css  js  c++  java
  • InnoDB 与 MyISAM 区别

     

    1、myisam可以对索引进行压缩,innodb不压缩

    2、索引都用b-tree, innodb使用 b+tree,NDB Cluster使用 T-Tree.

    3、myisam 表级锁, innodb 行级锁 支持mvcc (多并发版本控制)行级锁的升级,多事务并发的数据一致。采用快照的形式。

    4、myisam 号称读速度比Innodb要快 且支持 读写并发(select的时候 同时insert)

    5、InnoDB 中不保存表的具体行数,也就是说,执行select count(*) from table时,InnoDB要扫描一遍整个表来计算有多少行,但是MyISAM只要简单的读出保存好的行数即可。注意的是,当count(*)语句包含 where条件时,两种表的操作是一样的。

    6、索引方式不一样

    MyISAM的索引方式是非聚集 ,Innodb 聚集索引

    MyISAM 索引文件 和 数据文件是分开的,索引文件仅保存数据记录的地址

    Innodb 索引文件和数据文件在一起

    innodb的数据文件本身要按主键聚集,所以InnoDB要求表必须有主键(MyISAM可以没有)。如果没有会把第一个唯一索引当做主键。如果没有唯一索引,就自动生成一个隐藏列,类型为长整形。

    7、 MyISAM的辅助索引和主键索引 data部分都是指向数据的指针,innodb 的data部分是主键的值而不是地址。这就让innodb 如果不是主键索引就要先找辅助索引再找主键索引。 所以不建议用过长的索引做主键,会使其他辅助索引都变得很大。

    8、myisam 支持全文索引,innodB不支持全文索引

  • 相关阅读:
    Java Map遍历方式的选择
    UriMatcher类的addURI()方法
    Java IO流分析整理[转]
    java基础一些注意细节
    java中static变量和方存在内存什么区域
    详细解析Java中抽象类和接口的区别
    mybatis一些记录
    Go语言简介(上)— 语法
    JavaScript相关-深入面向对象
    33个组件5
  • 原文地址:https://www.cnblogs.com/yuyutianxia/p/3847800.html
Copyright © 2011-2022 走看看