首页 数据库 mysql教程 MySQL存储引擎简介_MySQL

MySQL存储引擎简介_MySQL

Jun 01, 2016 pm 01:13 PM
memory

MySQL使用的是插件式存储引擎。

主要包括存储引擎有:MyISAM,Innodb,NDB Cluster,Maria,Falcon,Memory,Archive,Merge,Federated。

其中最为广泛的是MyISAM 和Innodb两种存储引擎,所以接下来对它们做简单介绍。

MyISAM 存储引擎简介

MyISAM 存储引擎的表存储在数据库中,每一个表都被存放为三个以表名命名的物理文件。

1、(.frm文件)任何存储引擎都不可缺少的存放表结构定义信息的文件

2、(.MYD文件)存放表数据的文件

3、(.MYI文件)存放该表所有索引数据的文件

注:有且仅有这样三个文件做为MyISAM 存储类型的表的存储

MyISAM 的表以不同的格式存放在一个相同后缀名的.MYD 文件中。

其中格式分为:静态(FIXED)固定长度、动态(DYNAMIC)可变长度以及压缩(COMPRESSED)三种格式。

压缩:可以创建表的时候通过ROW_FORMAT 来指定{COMPRESSED | DEFAULT}(默认不压缩)

也可以通过myisampack 工具来进行压缩

非压缩:

动态:只要表中有可变长度类型的字段存在,那么该表就肯定是DYNAMIC 格式的

静态:如果没有任何可变长度的字段,则为FIXED 格式

MyISAM 支持以下三种类型的索引:

1、B-Tree 索引

B-Tree 索引,所有的索引节点都按照balance tree 的数据结构来存储,所有的索引数据节点都在叶节点。

2、R-Tree 索引

R-Tree 索引的存储方式和b-tree 索引有一些区别,主要设计用于为存储空间和多维数据的字段做索引,支持geometry 类型的字段作索引。

3、Full-text 索引

Full-text 索引就是我们长说的全文索引,他的存储结构也是b-tree。主要是为了解决在我们需要用like 查询的低效问题。

注:参与一个索引的所有字段的长度之和不能超过1000 字节

Innodb 存储引擎简介
1、支持事务安装

实现了SQL92 标准所定义的所有四个级别(READ UNCOMMITTED,READ COMMITTED,REPEATABLE READ 和SERIALIZABLE)

2、数据多版本读取

Innodb 在事务支持的同时,为了保证数据的一致性已经并发时候的性能,通过对undo信息,实现了数据的多版本读取。

3、锁定机制的改进

Innodb 改变了MyISAM 的锁机制,实现了行锁。行锁机制的实现是通过索引来完成的。

4、实现外键

建议不要使用外键,数据库系统调优专家都建议不要使用

5、Innodb 的物理结构

跟MyISAM一样:(.frm 文件)来存放表结构定义相关的元数据。

跟MyISAM不一样:表数据和索引数据是存放在一起的

Innodb 的物理结构分为两大部分:

1、数据文件(表数据和索引数据)

存放数据表中的数据和所有的索引数据,包括主键和其他普通索引。

Innodb 的表空间分为两种形式:

一种是共享表空间,也就是所有表和索引数据被存放在同一个表空间(一个或多个数据文件)中,通过innodb_data_file_path 来指定,增加数据文件需要停机重启。

另外一种是独享表空间,也就是每个表的数据和索引被存放在一个单独的.ibd 文件中。

注:共享表空间是必须存在的,因为Innodb 的undo 信息和其他一些元数据信息都是存放在共享表空间里面的。

共享表空间的数据文件是可以设置为固定大小和可自动扩展大小两种形式,自动扩展形式的文件可以设置文件的最大大小和每次扩展量。

2、日志文件

Innodb 的日志文件和Oracle 的redo 日志比较类似:

可以设置多个日志组(最少2个),采用轮循策略来顺序的写入,甚至在老版本中还有和Oracle 一样的日志归档特性。

注:千万别全部删除innodb 的日志文件,因为很可能就会让你的数据库crash,无法启动,或者是丢失数据。

Innodb 完全可以通过redo 日志将数据库Crash 时刻已经完成但还没有来得及将数据写入磁盘的事务恢复,也能够将所有部分完成并已经写入磁盘的未完成事务回滚并将数据还原。

Innodb 的所有参数基本上都带有前缀“innodb_”,可以仅仅通过参数(skip-innodb)来屏蔽MySQL 中的Innodb存储引擎,这样即使我们在安装编译的时候将Innodb 存储引擎安装进去了,使用者也无法创建Innodb 的表。

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

<🎜>:泡泡胶模拟器无穷大 - 如何获取和使用皇家钥匙
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系统,解释
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆树的耳语 - 如何解锁抓钩
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1665
14
CakePHP 教程
1424
52
Laravel 教程
1322
25
PHP教程
1270
29
C# 教程
1249
24
适用于台式电脑的 CAMM2:MSI 解释了游戏塔新 RAM 标准的优势 适用于台式电脑的 CAMM2:MSI 解释了游戏塔新 RAM 标准的优势 Aug 17, 2024 pm 06:47 PM

第一批用于笔记本电脑的 LPCAMM2 模块已经交付,预计未来台式机主板也将配备 CAMM2。 CAMM2和LPCAMM2彼此不兼容,即使在台式电脑上,客户也需要小心

MySQL储存引擎选型对比:InnoDB、MyISAM与Memory性能指标评估 MySQL储存引擎选型对比:InnoDB、MyISAM与Memory性能指标评估 Jul 26, 2023 am 11:25 AM

MySQL储存引擎选型对比:InnoDB、MyISAM与Memory性能指标评估引言:在MySQL数据库中,储存引擎的选择对于系统性能和数据完整性起着至关重要的作用。MySQL提供了多种储存引擎,其中最常用的引擎包括InnoDB、MyISAM和Memory。本文将就这三种储存引擎进行性能指标评估,并通过代码示例进行比较。一、InnoDB引擎InnoDB是My

win10内存管理引发的蓝屏问题 win10内存管理引发的蓝屏问题 Dec 30, 2023 pm 07:11 PM

win10系统是一款非常值得使用的优秀系统,强大的兼容性和高智能可以确保win10系统在使用中基本不会出现什么问题,但近日却有很多小伙伴们反应自己的电脑出现了频繁蓝盘并且老是提示错误代码memorymanagement这是怎么回事呢?今天小编就为大家带来了win10频繁蓝屏并且出现了memorymanagement终止代码的解决办法游戏需要的话就快来看看吧。win10memorymanagement蓝屏的解决办法:解决方法一:1、使用“Win键+R”+输入“control+enter”进入控制面

PHP Fatal error: Allowed memory size of的解决方法 bytes exhausted的解决方法 PHP Fatal error: Allowed memory size of的解决方法 bytes exhausted的解决方法 Jun 22, 2023 am 08:13 AM

PHP是一种广泛使用的服务器端脚本语言,但是在运行PHP应用程序时,可能会遇到‘PHPFatalerror:Allowedmemorysizeofbytesexhausted’的错误信息,这通常意味着内存分配问题。在本文中,我们将探讨一些常见的导致‘PHPFatalerror:Allowedmemorysizeofbytese

mysql中Memory存储引擎有什么特性 mysql中Memory存储引擎有什么特性 Jun 02, 2023 pm 08:48 PM

1、Memory表的每个表可以有多达32个索引。每个索引16列,以及500字节的键长度。2、存储引擎执行HASH和BTREE缩影。3、表中可以有非唯一的键值。4、表采用固定的记录长度格式。5、不支持BLOB或TEXT列。实例mysql>CREATETABLElookup(idINT,INDEXUSINGHASH(id))ENGINE=MEMORY;mysql>CREATETABLElookup(idINT,INDEXUSINGBTREE(id))ENGINE=MEMORY;

SK 海力士宣布推出'业界最佳”GDDR7 DRAM,声称速度比前代产品提高 60%,达到 32Gbps SK 海力士宣布推出'业界最佳”GDDR7 DRAM,声称速度比前代产品提高 60%,达到 32Gbps Jul 30, 2024 pm 06:38 PM

韩国内存制造商SK海力士公司宣布推出最新的图形内存GDDR7,号称业界领先。此消息发布近两周前,三星于 7 月 19 日宣布推出业界首款 1.5 TBps 的 GDDR7 DRAM 解决方案

Raspberry Pi:用户现在只需 100 行代码即可获得巨大的性能提升 Raspberry Pi:用户现在只需 100 行代码即可获得巨大的性能提升 Jun 28, 2024 pm 04:16 PM

Raspberry Pi 5 是一款用途非常广泛的单板计算机,主要是因为其广泛的连接性,与前几代产品相比显着提高的计算能力也发挥了作用。在IT领域,这样的事情并不罕见。

三星 8 层 HBM3E 芯片克服热量和功耗障碍,获得 Nvidia 批准 三星 8 层 HBM3E 芯片克服热量和功耗障碍,获得 Nvidia 批准 Aug 07, 2024 pm 07:20 PM

三星电子的8层HBM3E存储芯片已成功通过Nvidia的严格测试,将自己定位为快速增长的AI芯片行业的关键供应商。 HBM(高带宽内存)是一种特殊类型的 DRAM 设计

See all articles