首页 > 数据库 >Mysql 存储引擎(Innodb & MyIsam)

Mysql 存储引擎(Innodb & MyIsam)

时间:2022-08-25 15:57:38浏览次数:59  
标签:存储 log 索引 Innodb MyIsam Mysql 主键

SHOW ENGINES;#查看mysql上面全部的存储引擎

 

 下面主要讲解Innodb & MyIsam
1.数据结构
  a.Innodb 数据,索引,表结构都存在一个.ibd文件里
  b.MyIsam在磁盘上存储 分三个文件存储,MYD (数据)、MYI(索引)、FRM(sdi)(表结构)
2.事务
  a.Innodb支持事务,回滚,对于有update ,delete操作的表,效率更好
  b.MyIsam不支持事务,在5.6及以后都是默认innodb存储引擎,对于大量select操作的,效率更高
3.锁
  a.Innodb支持行级锁
  b.MyIsam是锁全表
4.主键
  a.Innodb必须要有主键,没有的话就会自动生成一个6字节的主键,但是对用户不可见,支持外键
  b.MyIsam可以没有主键,不支持外键
5.全表行数
  a.Innodb不存储总行数,select count(*) 是进行全表扫描
  b.MyIsam用一个变量保存了表的总行数(不能有where条件)
6.聚簇索引
  a.Innodb 的主键索引就是聚簇索引(叶子节点会存储数据行),通过主键索引效率很高。但是辅助索引需要两次查询,先查询到主键,然后再通过主键查询到数据。因此,主键不应该过大,因为主键太大,其他索引也都会很大。
  b.MyIsam引擎的索引都不是聚簇索引,在查询时至少需要进行一次的回表查询,其执行的过程:先通过索引表查询到索引对应该行的物理地址,然后去读该物理地址的值
7.恢复
  a.Innodb 内存结构中有log buffer,当有更新的时候,先写入log,并更新到内存,innodb会在空闲的时候更新磁盘。有了 redo log(是 InnoDB 引擎特有的),InnoDB 就可以保证即使数据库发生异常重启,之前提交的记录都不会丢失,这个能力称为 crash-safe。
    redo log 是物理日志,记录的是“在某个数据页上做了什么修改”;
    bin log   是逻辑日志,记录的是这个语句的原始逻辑,比如“给 ID=2 这一行的 c 字段加 1 ”。
  b.MyIsam 不能恢复

 

 

 

 

  

标签:存储,log,索引,Innodb,MyIsam,Mysql,主键
From: https://www.cnblogs.com/lenle29/p/16621125.html

相关文章

  • 数据篇(MongoDB+ElasticSearch+Minio+TiDB+MySQL+Redis)
    一. 简介1. MongoDB  2. ElasticSearch  3. Minio   4. TiDB  5. MySQL   6. Redis         二. 目录  ......
  • mysql 不可重复读与幻读的区别
    不可重复读的重点是修改:同样的条件,你读取过的数据,再次读取出来发现值不一样了幻读的重点在于新增或者删除同样的条件,第1次和第2次读出来的记录数不一样当然,从......
  • MySQL的InnoDB引擎下执行更新Update语句时 执行时间太久 问题集锦
    场景1:更新cjq表的一个字段,发现执行时间半个小时以上还没执行结束UPDATEt_hplc_cjqSETcjq_type=2WHEREcjq_typeISNULLANDidIN(SELECTcjq_idFROMt_hp......
  • Linux MYSQL安装
    1、安装mysql服务器及客户端sudoapt-getinstallmysql-servermysql-client 2、安装mysqlC语言接口sudoapt-getinstalllibmysql++-dev 3、编译文件(mysql_co......
  • Mysql---函数
    《字符串相关函数》  《数学相关函数》  《时间相关函数》        ......
  • Ubuntu 安装 MySQL 5.7
    一、安装MySQL1. 删除Mysql 数据库sudoaptautoremove--purgemysql-server-*sudoaptremovemysql-serversudoaptautoremovemysql-serversudoaptremovem......
  • 【MySQL】mysqldump从所有数据库备份中还原某个指定的库
    有时候,需要还原某个特定的数据库,但是在备份的时候却又备份了所有的数据库。这时,就可以通过参数--one-database选项来还原指定的数据库。mysql-uroot-p[pwd]--one-data......
  • MySQL查询性能优化七种武器之索引下推
    前面已经讲了MySQL的其他查询性能优化方式,没看过可以去了解一下:MySQL查询性能优化七种武器之索引潜水MySQL查询性能优化七种武器之链路追踪今天要讲的是MySQL的另一种查......
  • 详解MySQL隔离级别
    一个事务具有ACID特性,也就是(Atomicity、Consistency、Isolation、Durability,即原子性、一致性、隔离性、持久性),本文主要讲解一下其中的Isolation,也就是事务的隔离性。概......
  • 【mysql_8】
    网址:https://dev.mysql.com/downloads/MySQLCommunityServerLinux-Generic根据自己的系统选择安装包,我这里选择的是X8664位 第一步:1)切换到/usr/local下2......