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

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

      最常使用的2种存储引擎:
      1.Myisam是Mysql的默认存储引擎,当create创建新表时,未指定新表的存储引擎时,默认使用Myisam。每个MyISAM在磁盘上存储成三个文件。文件名都和表名相同,扩展名分别是.frm(存储表定义)、.MYD(MYData,存储数据)、.MYI(MYIndex,存储索引)。数据文件和索引文件可以放置在不同的目录,平均分布io,获得更快的速度。
      2.InnoDB存储引擎提供了具有提交、回滚和崩溃恢复能力的事务安全。但是对比Myisam的存储引擎,InnoDB写的处理效率差一些并且会占用更多的磁盘空间以保留数据和索引。

      3.mysiam表不支持事务处理,同时mysiam表不支持外键。

      4.同时,在执行数据库写入的操作(insert,update,delete)的时候,mysiam表会锁表,而innodb表会锁行。通俗点说,就是你执行了一个update语句,那么mysiam表会将整个表都锁住,其他的insert和delete、update都会被拒之门外,等到这个update语句执行完成后才会被依次执行。
      而锁行,就是说,你执行update语句是,mysql只会将这一条记录进行锁定,只有针对这条记录的其他写入、更新操作会被阻塞并等待这条update语句执行完毕后再执行,针对其他记录的写入操作不会有影响。

      因此,当你的数据库有大量的写入、更新操作而查询比较少或者数据完整性要求比较高的时候就选择innodb表。当你的数据库主要以查询为主,相比较而言更新和写入比较少,并且业务方面数据完整性要求不那么严格,就选择mysiam表。因为mysiam表的查询操作效率和速度都比innodb要快

  • 相关阅读:
    TensorFlow实现线性回归
    在window10平台下安装TensorFlow(only cpu)
    毕设——基于深度学习的恶意代码检测
    play ball小游戏-Alpha版本发布说明
    支持3000万道四则运算题目生成的小学生毁灭姬
    图片集
    个人项目WordCount(C++/QT)
    自我介绍+软工5问
    大数据应用技术课程实践--选题与实践方案
    15 手写数字识别-小数据集
  • 原文地址:https://www.cnblogs.com/thinksasa/p/2973578.html
Copyright © 2011-2022 走看看