服务器之家:专注于服务器技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - Mysql - MySQL MyISAM默认存储引擎实现原理

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

2021-01-11 23:14shouyaya Mysql

这篇文章主要介绍了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,也可以放到经常查询的列作为主键

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

原文链接:https://www.cnblogs.com/shouyaya/p/12243071.html

延伸 · 阅读

精彩推荐
  • MysqlMySQL数据库varchar的限制规则说明

    MySQL数据库varchar的限制规则说明

    本文我们主要介绍了MySQL数据库中varchar的限制规则,并以一个实际的例子对限制规则进行了说明,希望能够对您有所帮助。 ...

    mysql技术网4192019-11-23
  • MysqlERROR: Error in Log_event::read_log_event()

    ERROR: Error in Log_event::read_log_event()

    ERROR: Error in Log_event::read_log_event(): read error, data_len: 438, event_type: 2 ...

    MYSQL教程网6402020-03-13
  • Mysqlmysql 不能插入中文问题

    mysql 不能插入中文问题

    当向mysql5.5插入中文时,会出现类似错误 ERROR 1366 (HY000): Incorrect string value: '\xD6\xD0\xCE\xC4' for column ...

    MYSQL教程网5722019-11-25
  • MysqlMySQL 数据备份与还原的示例代码

    MySQL 数据备份与还原的示例代码

    这篇文章主要介绍了MySQL 数据备份与还原的相关知识,本文通过示例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下...

    逆心2962019-06-23
  • MysqlMySQL锁的知识点总结

    MySQL锁的知识点总结

    在本篇文章里小编给大家整理了关于MySQL锁的知识点总结以及实例内容,需要的朋友们学习下。...

    别人放弃我坚持吖4362020-12-14
  • Mysql解决MySQl查询不区分大小写的方法讲解

    解决MySQl查询不区分大小写的方法讲解

    今天小编就为大家分享一篇关于解决MySQl查询不区分大小写的方法讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起...

    Veir_dev5592019-06-25
  • Mysql详解MySQL中的分组查询与连接查询语句

    详解MySQL中的分组查询与连接查询语句

    这篇文章主要介绍了MySQL中的分组查询与连接查询语句,同时还介绍了一些统计函数的用法,需要的朋友可以参考下 ...

    GALAXY_ZMY5432020-06-03
  • Mysql浅谈mysql 树形结构表设计与优化

    浅谈mysql 树形结构表设计与优化

    在诸多的管理类,办公类等系统中,树形结构展示随处可见,本文主要介绍了mysql 树形结构表设计与优化,具有一定的参考价值,感兴趣的小伙伴们可以参...

    小码农叔叔5242021-11-16