MySQL MyISAM默认存储引擎实现原理

 更新时间:2020年03月20日 15:23:42   作者:shouyaya  
这篇文章主要介绍了MySQL MyISAM默认存储引擎实现原理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

默认MyISAM的表会在磁盘中产生3个文件:.frm(表结构文件)、.MYD(数据文件)、.MYI(索引文件)

  可以在创建的时候指定数据文件和索引文件的存储位置,只有MyISAM表支持:

  •     DATA DIRECTORY [=] 数据保存的绝对路径
  •     INDEX DIRECTORY [=] 索引文件的绝对路径

  MyISAM单表最大支持的数据量为2的64次方跳记录  

  每个表最多可以建立64个索引

  如果是复合索引,每个复合索引最多包含16个列,索引值最大长度是1000B

  MyISAM引擎的存储格式:

  •     定长(FIXED 静态) :是指字段不包含VARCHAR/TEXT/BLOB
  •     动态(DYNAMIC) :只要字段中包含了VARCHAR/TEXT/BLOB
  •     压缩(COMPRESSED):muisampack创建

InnoDB存储引擎:

  设计遵循ACID模型,支持事务,具有从服务崩溃中恢复的能力,能够最大限度保护用户的数据

  支持行级锁,可以提升多用户并发时的读写性能

  InnoDB拥有自己独立的缓冲池,常用的数据和索引都在缓存中

  对于INSERT、UPDATE、DELETE操作,InnoDB会使用一种change buffering的机制来自动优化,还可以提供一致性的读,并且还能够缓存变更的数据,减少磁盘I/O,提高性能

  创建InnoDB表之后会产生两个文件:

  •     .frm表结构文件
  •     .ibd 数据和索引存储表空间中

  所有的表都需要创建主键,最好是配合上AUTO_INCREMENT,也可以放到经常查询的列作为主键

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • mysql 8.0.16 winx64.zip安装配置方法图文教程

    mysql 8.0.16 winx64.zip安装配置方法图文教程

    这篇文章主要为大家详细介绍了mysql 8.0.16 winx64.zip安装配置方法图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-05-05
  • mybatis mysql delete in操作只能删除第一条数据的方法

    mybatis mysql delete in操作只能删除第一条数据的方法

    这篇文章主要介绍了mybatis mysql delete in操作只能删除第一条数据的问题及解决方法,需要的朋友可以参考下
    2018-09-09
  • mysql默认编码为UTF-8 通过修改my.ini实现方法

    mysql默认编码为UTF-8 通过修改my.ini实现方法

    这篇文章主要介绍了mysql默认编码为UTF-8 通过修改my.ini实现方法的相关资料,为了防止出现乱码,Latin1是不支持汉字的,所以要将其改为UTF-8或GBK,需要的朋友可以参考下
    2017-01-01
  • mysql 数据类型转换的实现

    mysql 数据类型转换的实现

    这篇文章主要介绍了mysql 数据类型转换的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • mysql 常用命令集锦(Linux/Windows)

    mysql 常用命令集锦(Linux/Windows)

    这篇文章主要介绍了Linux/Windows系统下mysql 常用的命令,需要的朋友可以参考下
    2014-07-07
  • 关于MySQL外键的简单学习教程

    关于MySQL外键的简单学习教程

    这篇文章主要介绍了关于MySQL外键的简单学习教程,对InnoDB引擎下的外键约束做了简洁的讲解,需要的朋友可以参考下
    2015-11-11
  • Python版Mysql爆破小脚本

    Python版Mysql爆破小脚本

    本文给大家分享的是使用Python制作的MySQL在线用户密码的暴力破解脚本,非常的好用,有需要的小伙伴可以参考下
    2016-10-10
  • MySQL中使用序列Sequence的方式总结

    MySQL中使用序列Sequence的方式总结

    序列是一组整数如1,2,3,...为了在需要时生成的,这篇文章主要给大家介绍了关于MySQL中使用序列Sequence的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-09-09
  • mysql并发控制原理知识点

    mysql并发控制原理知识点

    在本篇文章里小编给大家整理的是一篇关于mysql并发控制原理知识点内容,需要的朋友们参考下吧。
    2020-02-02
  • MYSQL 随机 抽取实现方法及效率分析

    MYSQL 随机 抽取实现方法及效率分析

    MYSQL的随机抽取实现方法。举个例子,要从tablename表中随机提取一条记录,大家一般的写法就是:SELECT * FROM tablename ORDER BY RAND() LIMIT 1。
    2009-05-05

最新评论