首页 > 数据库 >mysql 中 myisam 与 innodb 的区别?

mysql 中 myisam 与 innodb 的区别?

时间:2023-07-25 18:24:01浏览次数:45  
标签:文件 myisam 支持 索引 InnoDB MyISAM mysql innodb 主键

 1. 事务支持 > MyISAM:强调的是性能,每次查询具有原子性,其执行数 度比 InnoDB 类型更快,但是不提供事务支持。 > InnoDB:提供事 务支持事务,外部键等高级数据库功能。 具有事务(commit)、回滚 (rollback)和崩溃修复能力(crash recovery capabilities)的事务安全 (transaction-safe (ACID compliant))型表。

2. InnoDB 支持行级锁,而 MyISAM 支持表级锁. >> 用户在操作 myisam 表时,select,update,delete,insert 语句都会给表自动 加锁,如果加锁以后的表满足 insert 并发的情况下,可以在表的尾部插 入新的数据。

3. InnoDB 支持 MVCC, 而 MyISAM 不支持

4. InnoDB 支持外键,而 MyISAM 不支持

5. 表主键 > MyISAM:允许没有任何索引和主键的表存在,索引都是保 存行的地址。 > InnoDB:如果没有设定主键或者非空唯一索引,就会 自动生成一个 6 字节的主键(用户不可见),数据是主索引的一部分,附 加索引保存的是主索引的值。

6. InnoDB 不支持全文索引,而 MyISAM 支持。

7. 可移植性、备份及恢复 > MyISAM:数据是以文件的形式存储,所以 在跨平台的数据转移中会很方便。在备份和恢复时可单独针对某个表进 行操作。 > InnoDB:免费的方案可以是拷贝数据文件、备份 binlog,或者用 mysqldump,在数据量达到几十 G 的时候就相对痛 苦了

8. 存储结构 > MyISAM:每个 MyISAM 在磁盘上存储成三个文件。第一 个文件的名字以表的名字开始,扩展名指出文件类型。.frm 文件存储表 定义。数据文件的扩展名为.MYD (MYData)。索引文件的扩展名 是.MYI (MYIndex)。 > InnoDB:所有的表都保存在同一个数据文件 中(也可能是多个文件,或者是独立的表空间文件),InnoDB 表的大 小只受限于操作系统文件的大小,一般为 2GB。

标签:文件,myisam,支持,索引,InnoDB,MyISAM,mysql,innodb,主键
From: https://www.cnblogs.com/mssrecord/p/17580567.html

相关文章

  • springboot mysql 配置 propertis
    SpringBootMySQL配置Properties在SpringBoot应用程序中,我们经常需要使用MySQL数据库来存储和检索数据。为了连接和配置MySQL数据库,我们可以使用application.properties文件。这篇文章将向您展示如何使用SpringBoot的application.properties文件来配置MySQL数据库连接。1.引......
  • 允许任意IP访问mysql数据库
    问题描述MYSQL默认只能本地连接,即127.0.0.1和localhost,其他主机IP无法访问数据库,否则会出现如下报错信息:HostisnotallowedtoconnecttothisMySQLserver一、先在本地用localhost用户登录MYSQLmysql>mysql-hlocalhost-uroot-p1二、查询用户表mysql>selecthost,us......
  • MySql对应的C#类型
    数据库中字段类型对应C#中的数据类型:数据库C#程序intint32textstringbigintint64binarySystem.Byte[]bitBooleancharstringdatetimeSystem.DateTimedecimal......
  • MySQL索引失效
    使用函数或表达式:当查询中使用函数或表达式操作列时,MySQL无法使用该列上的索引。例如,WHERE子句中使用函数、表达式或算术操作,如DATE_FORMAT、CONCAT、IF等,可能导致索引失效。列类型不匹配:在查询中,如果列的类型与索引的列类型不匹配,索引可能失效。例如,如果索引是整数类......
  • Mysql 增删改查语言系列
    Mysql数据语言系列目录Mysql数据语言系列一.数据定义语言DDL1数据库规范2DDL语言使用2创建视图二.数据操纵语言DML1插入语法2更新语法3删除语法4伪删除5数据恢复6案例三.数据控制语言DCL1概念2用户管理3权限管理4角色管理四.数据查询类语句DQL1语法格式......
  • 安装mysql启动服务过长
    安装MySQL启动服务过长的原因及解决方法在安装MySQL时,有时会遇到启动服务过长的问题。本文将介绍这个问题的原因以及可能的解决方法。问题描述当我们安装MySQL并尝试启动服务时,可能会遇到启动过程非常缓慢的情况。在终端或命令行中,我们可能会看到类似以下的输出:StartingMySQL.......
  • 排查mysql pxc集群故障节点
    排查MySQLPXC集群故障节点MySQLPXC(PerconaXtraDBCluster)是一个高可用性的数据库集群解决方案,它基于MySQL和GaleraCluster技术实现。在实际运行中,可能会遇到一些节点故障的情况,本文将介绍如何排查MySQLPXC集群的故障节点,并给出相应的代码示例。1.检查集群状态在排......
  • MySQL参数
     最大连接数showvariableslike'max_connections';超时时间showglobalvariableslike'%timeout%'; 超时分析:TimeoutError:QueuePoollimitofsize10overflow10reached,connectiontimedout,timeout30https://reality0ne.com/sqlalchemy-zhong-......
  • Mysql联合索引是如何找到数据的
    比较简单的是单列索引(b+tree)。遇到多条件查询时,不可避免会使用到多列索引。联合索引又叫复合索引。b+tree结构如下:每一个磁盘块在mysql中是一个页,页大小是固定的,mysqlinnodb的默认的页大小是16k,每个索引会分配在页上的数量是由字段的大小决定。当字段值的长度越长,每一页上的数......
  • ubuntu22.04部署mysql---主从
    1、首先部署mysql主服务:详见上一篇《ubuntu22.04部署mysql---单机》https://blog.51cto.com/u_14175560/6766135上述部署好后,主节点server_id:vim/etc/mysql/my.cnf##新增配置:[mysqld]server_id=1重启mysql:systemctlrestartmysql登录mysql,指定从节点IP,运行下述(注意修改......