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优化还是很重要的。
  • 相关阅读:
    提高Java程序性能的技巧
    HBASE学习d端口master:16010(java操作hbase)https://www.cnblogs.com/junrong624/p/7323483.html
    log4j.properties加入内容
    zookeeper学习及安装
    flume学习以及ganglia(若是要监控hive日志,hive存放在/tmp/hadoop/hive.log里,只要运行过hive就会有)
    Hadoop各个启动流
    crontab基本操作部分
    pig(数据流语言和编译器)学习https://www.w3cschool.cn/apache_pig/apache_pig_execution.html
    pig配置
    hive(在大数据集合上的类SQL查询和表)学习
  • 原文地址:https://www.cnblogs.com/JKayFeng/p/5881688.html
Copyright © 2011-2022 走看看