• innodb与myisam的对比总结


    innodb:

    1.事务操作
    2.外键操作
    3.行级锁,这是当有where条件的时候。没有where时,不知道在那一个范围进行搜索时,也是表锁.提供和 Oracle 一样的一致性的不加锁读取,能增加并发读的用户数量并提高性能,不会增加锁的数量。
    4.写的速度快,这是建立在索引的更新操作上

    5.InnoDB 的设计目标是处理大容量数据时最大化性能,它的 CPU 利用率是其他所有基于磁盘的关系数据库引擎中最有效率的,在技术上,InnoDB 是一套放在 MySQL 后台的完整数据库系统,InnoDB 在主内存中建立其专用的缓冲池用于高速缓冲数据和索引。 InnoDB 把数据和索引存放在表空间里,可能包含多个文件,这与其它的不一样,举例来说,在 MyISAM 中,表被存放在单独的文件中。InnoDB 表的大小只受限于操作系统的文件大小,一般为 2 GB。  
    InnoDB所有的表都保存在同一个数据文件 ibdata1 中(也可能是多个文件,或者是独立的表空间文件),相对来说比较不好备份,免费的方案可以是拷贝数据文件、备份 binlog,或者用 mysqldump。  

     

    myisam:

    1.表级锁
    2.读取速度快
    3.索引压缩更好
    4.更好和更快的auto_increment处理

    COUNT() 在 MyISAM 表中会非常快,而在InnoDB 表下可能会很痛苦。而主键查询则在InnoDB下会相当相当的快,但需要小心的是如果我们的主键太长了也会导致性能问题。大批的inserts 语句在 MyISAM下会快一些,但是updates 在InnoDB 下会更快一些——尤其在并发量大的时候。

    myisam与innodb这两种引擎对索引的实现方式也不同。

    myiasm是使用B-树的结构来实现主码,非主码,唯一索引。

    innodb是使用B+树结构来实现主码,用B-树来实现非主码。

    使用两种的选择:如果你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,
    应该使用InnoDB表。如果执行大量的SELECT,MyISAM是更好的选择。若需要使用事务处理,
    但是原来的数据表使用的是myisam,就需要改为bdb或者innodb,这样基于myisam的程序,
    将类型改为innodb后,其程序不用改动…… 综上所述,任何一种表都不是万能的,只有恰当的针对业务类型来选择合适的表类型,才能
    最大的发挥MySQL的性能优势。

  • 相关阅读:
    vue中element-ui的内置过渡动画
    vue路由自动加载、按组件异步载入vuex以及dll优化
    h5春节小游戏制作
    python脚本通过adb命令安装包
    pipeline
    python闭包与装饰器
    linux-awk
    CSAPP Lab3: The Attack Lab
    CSAPP Lab4 Cache Lab
    HDU. 2243. 考研路茫茫——单词情结(AC自动机 DP 矩阵快速幂)
  • 原文地址:https://www.cnblogs.com/myblog1314/p/3118370.html
Copyright © 2020-2023  润新知