MyISAM和InnoDB区别

mysql有多种存储引擎,myisaminnodb是其中常用的两种。这里介绍关于这两种引擎的一些基本概念(非深入介绍)。

MyISAM是MySQL的默认存储引擎,基于传统的ISAM类型,支持全文搜索,但不是事务安全的,而且不支持外键。每张MyISAM表存放在三个文件中:frm 文件存放表格定义;数据文件是MYD (MYData);索引文件是MYI (MYIndex)。

InnoDB是事务型引擎,支持回滚、崩溃恢复能力、多版本并发控制、ACID事务,支持行级锁定(InnoDB表的行锁不是绝对的,如果在执行一个SQL语句时MySQL不能确定要扫描的范围,InnoDB表同样会锁全表,如like操作时的SQL语句)。InnoDB存储它的表和索引在一个表空间中,表空间可以包含数个文件。

主要区别:

MyISAM是非事务安全型的,而InnoDB是事务安全型的。

MyISAM锁的粒度是表级,而InnoDB支持行级锁定。

MyISAM支持全文类型索引,而InnoDB不支持全文索引。

MyISAM相对简单,所以在效率上要优于InnoDB,小型应用可以考虑使用MyISAM。

MyISAM表是保存成文件的形式,在跨平台的数据转移中使用MyISAM存储会省去不少的麻烦。

InnoDB表比MyISAM表更安全,可以在保证数据不会丢失的情况下,切换非事务表到事务表(alter table tablename type=innodb)。

应用场景:

MyISAM管理非事务表。它提供高速存储和检索,以及全文搜索能力。如果应用中需要执行大量的SELECT查询,那么MyISAM是更好的选择。

InnoDB用于事务处理应用程序,具有众多特性,包括ACID事务支持。如果应用中需要执行大量的INSERT或UPDATE操作,则应该使用InnoDB,这样可以提高多用户并发操作的性能。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/1829655.html

(0)
上一篇 2025年2月21日 19:54:43
下一篇 2025年2月21日 19:55:01

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • MySQL 5.6之innodb导入的改进

    在MySQL 5.6之前,导入单个innodb表的idb文件需要对齐tablespace id,而如果tablespace id不一致,就需要通过在新库不挺的新建表 在mysql 5.6之前,导入单个innodb表的idb文件需要对齐tab…

    数据库 2025年2月23日
    100
  • InnoDB: Error: io_setup() failed with EAGAIN after 5 attempt

    在一台服务器中以各数据库的备份文件为数据文件启动多个MySQL实例供SQL Review使用。之前运行一直没有问题(最多的时候有23个MyS 在一台服务器中以各数据库的备份文件为数据文件启动多个mysql实例供sql review使用。之前…

    数据库 2025年2月23日
    100
  • InnoDB与Oracle单行存储长度对比

    众所周知,MySQL InnoDB存储引擎与Oracle非常相似,支持事务,row-locking,经过实际测试,innodb与oracle一个比较大的差异点为,相 众所周知,MySQL InnoDB存储引擎与Oracle非常相似,支持事务…

    数据库 2025年2月23日
    100
  • 为MySQL数据库的InnoDB引擎配置裸设备(Raw Device)

    MySQL 的 InnoDB 存储引擎不仅可以缓存索引,而且还可以缓存数据,如果将其表和索引存储在裸设备(Raw Device)上,从而绕过了文件 mysql 的 innodb 存储引擎不仅可以缓存索引,而且还可以缓存数据,如果将其表和索引…

    数据库 2025年2月22日
    100
  • 一个InnoDB 加锁的案例

    最近一直在优化各个产品的SQL语句,同时还帮一个同事解决deadlock问题,收获就是对InnoDB加锁的理解更加深入了。先来看看今天的这 最近一直在优化各个产品的sql语句,同时还帮一个同事解决deadlock问题,收获就是对innodb…

    数据库 2025年2月22日
    100
  • 工作中InnoDB引擎数据库主从复制同步心得

    近期将公司的MySQL架构升级了,由原先的一主多从换成了DRBD+Heartbeat双主多从,正好手上有一个电子商务网站新项目也要上线了,用 近期将公司的mysql架构升级了,由原先的一主多从换成了drbd+heartbeat双主多从,正好…

    数据库 2025年2月22日
    100
  • InnoDB 中foreign key使用注意事项

    在 sel statement 中的inserts,deletes,updates 很多行的时候,fk 会一行一行检查。 innodb是设置 shared row_level locks 在父表 innodb foreign key 和 s…

    数据库 2025年2月22日
    100
  • MySQL的MyISAM引擎不支持事务

    找一天的 spring 事务回滚错误,终于找到了 原来 MySQL的MyISAM引擎,是不支持事务处理的 唉~~~ 看看mysql 用少了 找一天的 spring 事务回滚错误,终于找到了  原来 mysql的myisam引擎 是不支持事务…

    数据库 2025年2月22日
    100
  • innodb中的REDO解析

    INNODB存储引擎的预写日志方式来保证事务的完整性。这意味着磁盘上的存储的数据页和内存缓冲池中的页是不同步的,对于内粗缓冲中 在innodb存储引擎中,事务日志通过重做(redo)日志文件和innodb存储引擎的日志缓冲(innodb l…

    数据库 2025年2月22日
    100
  • MySQL 5.1安装InnoDB引擎

    安装 innodb 引擎(mysql5.1默认不安装),可以在编译安装时,在configrue的时候,加上–with-plugins=innobase这个参数。如果之 安装 innodb 引擎(mysql5.1默认不安装) 可以…

    数据库 2025年2月22日
    100

发表回复

登录后才能评论