我的编程空间,编程开发者的网络收藏夹
学习永远不晚

InnoDB和MyISAM的区别是什么

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

InnoDB和MyISAM的区别是什么

InnoDB和MyISAM的区别是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定。以前MySQL 默认的存储引擎是MYISAM,从5.5.5之后就改用InnoDB了。它们的基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持已经外部键等高级数据库功能。
MyIASM是IASM表的新版本,有如下扩展:
·二进制层次的可移植性。
·NULL列索引。
·对变长行比ISAM表有更少的碎片。
·支持大文件。
·更好的索引压缩。
·更好的键吗统计分布。
·更好和更快的auto_increment处理。
 
以下是一些细节和具体实现的差别:
 
◆1.InnoDB不支持FULLTEXT类型的索引。
◆2.InnoDB 中不保存表的具体行数,也就是说,执行select count(*) from table时,InnoDB要扫描一遍整个表来计算有多少行,但是MyISAM只要简单的读出保存好的行数即可。注意的是,当count(*)语句包含where条件时,两种表的操作是一样的。
◆3.对于AUTO_INCREMENT类型的字段,InnoDB中必须包含只有该字段的索引,但是在MyISAM表中,可以和其他字段一起建立联合索引。
◆4.DELETE FROM table时,InnoDB不会重新建立表,而是一行一行的删除。
◆5.LOAD TABLE FROM MASTER操作对InnoDB是不起作用的,解决方法是首先把InnoDB表改成MyISAM表,导入数据后再改成InnoDB表,但是对于使用的额外的InnoDB特性(例如外键)的表不适用。
 
在高性能MYSQL上还说默认MYISAM,其实要看那个版本,我现在的默认就是InnoDB,手册上是这么说的:
InnoDB is a high-reliability and high-performance storage engine for MySQL. Starting with MySQL 5.5, it is the default MySQL storage engine. Key advantages of InnoDB include:
Its design follows the ACID model, with transactions featuring commit, rollback, and crash-recovery capabilities to protect user data.
Row-level locking and Oracle-style consistent reads increase multi-user concurrency and performance.
InnoDB tables arrange your data on disk to optimize common queries based on primary keys. Each InnoDB table has a primary key index called the clustered index that organizes the data to minimize I/O for primary key lookups.
To maintain data integrity, InnoDB also supports FOREIGN KEY referential-integrity constraints.
You can freely mix InnoDB tables with tables from other MySQL storage engines, even within the same statement. For example, you can use a join operation to combine data from InnoDB and MEMORY tables in a single query.
To determine whether your server supports InnoDB use the SHOW ENGINES statement.
 
Before MySQL 5.5.5, MyISAM is the default storage engine. (The default was changed to InnoDB in MySQL 5.5.5.) MyISAM is based on the older (and no longer available) ISAM storage engine but has many useful extensions.
Table 13.10. MyISAM Storage Engine Features

看完上述内容,你们掌握InnoDB和MyISAM的区别是什么的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

InnoDB和MyISAM的区别是什么

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

InnoDB和MyISAM的区别

一、数据存放结构不同 InnoDB和MyISAM是Mysql的两种存储引擎,所谓存储引擎,就是数据文件的组织方式,其最大的不同,就是数据存储的结构和方式不一样。InnoDB采用聚簇索引来存储数据,MyISAM采用非聚簇索引。 也就是说,In
2023-08-21

mysql中myisam与innodb的区别是什么

MyISAM和InnoDB是MySQL数据库中两种最常用的存储引擎,它们之间有一些重要的区别:ACID属性:InnoDB支持事务,具有ACID(原子性、一致性、隔离性、持久性)属性,可以确保数据的完整性和一致性。而MyISAM不支持事务。锁
mysql中myisam与innodb的区别是什么
2024-03-15

MySQL MyISAM 与InnoDB 的区别

区别:1. InnoDB支持事务,MyISAM不支持,对于InnoDB每一条SQL语言都默认封装成事务,自动提交,这样会影响速度,所以最好把多条SQL语言放在begin和commit之间,组成一个事务; 2. InnoDB支持外键,而MyI
2022-05-30

MyISAM和InnoDB存储引擎的区别

目录 前言存储引擎 区别事务外键表单的存储数据查询效率数据更新效率 如何选择 前言 MyISAM和InnoDB是使用MySQL最常用的两种存储引擎,在5.5版本之前默认采用MyISAM存储引擎,从5.5开始采用InnoD
2023-08-17

Mysql中MyISAM和InnoDB的区别及说明

目录MyISAM和InnoDB的区别1. 定义2. 区别3. 使用MyISAM和InnoDB索引结构分析存储引擎作用于什么对象MyISAM和InnoDB对索引和数据的存储在磁盘上是如何体现的MyISAM主键索引与辅助索引的结构InnoDB主
2022-12-26

编程热搜

目录