zoukankan      html  css  js  c++  java
  • mysql数据库引擎MyISAM与InnoDB的区别浅说

    mysql的存储引擎包括:MyISAM、InnoDB、BDB、MEMORY、MERGE、EXAMPLE、NDBCluster、ARCHIVE、CSV、BLACKHOLE、FEDERATED等,其中InnoDB和BDB提供事务安全表,其他存储引擎都是非事务安全表。

    MyISAM引擎是不支持事务的。如果你在使用Spring+Hibernate事务回滚无效。可以联想一下mysql使用的引擎是那种。
    InnoDB存储引擎提供了具有提交、回滚和崩溃恢复能力的事务安全。但是对比Myisam的存储引擎,InnoDB写的处理效率差一些并且会占用更多的磁盘空间以保留数据和索引。

    Innordb的功能要比myiasm强大很多,但是innordb的性能要比myisam差很多。
    如果只是做简单的查询,更新,删除,那么用myiasm是最好的选择。
    如果你的数据量是百万级别的,并且没有任何的事务处理,那么用myisam是性能最好的选择。
    Innordb的表的大小更加的大,用myisam可以省很多的硬盘空间。

    在测试的这个40w的表中,表占用空间的情况如下:
    引擎类型                    MyIsam               InnorDB
     数据                       53,924 KB           58,976 KB
     索引                       13,640 KB           21,072 KB
     占用总空间             67,564 KB           80,048 KB

    另外一个180W万记录的表, 表占用空间的情况如下:
    引擎类型                MyIsam               InnorDB
     数据                   56,166 KB           90,736 KB
     索引                   67,103 KB           88,848 KB
     占用总空间        123,269 KB         179,584 KB
    总结:一般来说,MYisam引擎比较常用。
    适合:
    1. 做很多count 的计算。
    2. 插入不平凡,查询非常频繁。
    3.  没有事务

    innordb 适合:
    1. 可靠性要求比较高,或者要求事务。
    2. 表更新和查询都相当的频繁,并且表锁定的机会比较大的情况。

    但大多数情况中,sql优化还是很重要的。
  • 相关阅读:
    第2阶段冲刺2
    第2阶段冲刺1
    在Ubuntu下安装VWMare tools
    mysql命令行修改密码
    Ubuntu设置环境变量
    java输出程序运行时间
    Hadoop之环境搭建
    MapReduce实现WordCount
    大数据技术之kettle(2)——练习三个基本操作
    大数据技术之kettle(1)——安装
  • 原文地址:https://www.cnblogs.com/JKayFeng/p/5881688.html
Copyright © 2011-2022 走看看