MyISAM和InnoDB索引区别

 

MyISAM:

        表级锁、不支持事务,支持全文索引。

        存储结构上:

                三个文件,'.frm'-表结构文件,'.MYD'-数据文件,‘.role’-索引文件,非聚集索引 。
        
                主键索引结构:通过对col1建立主键索引,会从索引文件找到索引节点,再通过索引节点上的文件指针到数据文件中,定位具体的数据。
                辅助索引结构:与主键索引结构上并无任何区别,主键Key不可重复,辅助索引则可重复。

InnoDB:

行级锁、事务安全(ACID兼容)、支持外键,5.6.4后也支持全文索引。

        存储结构上:

                2个文件,'.frm'-表结构文件',‘,ibd’-索引和数据文件,聚集索引。

        主键索引结构:

                由于InnoDB的文件中存放了索引和数据,所以可以通过索引直接拿到数据。因此,InnoDB必须有主键索引(不推荐uuid,字符串类型匹配慢)
                        原因:

                                uuid,在磁盘中存储是不连续的。重新添加的时候,为了维护B+树的结构,会破坏左侧子树的结构,进行结构的重构,消耗更多的时间。
        辅助索引:

                与主键索引不同的是,它的data部分不是完整的数据记录,存储的是对应到主键的数据的索引,所以辅助索引查询数据时,会走两边拿到数据(节省空间,数据一致性)。

 总结:   

          在使用上,当数据量大,cpu数据多的情况下,使用InnoDB,因为InnoDB在吞吐量上的提高明显,本身也是为了大数据而设计使用的,在数据量更新次数少,cpu少,且查询频繁,或者经常需要确定表内数据总数的情况下时,使用MyISAM索引结构。

 

        

        

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值