第三章 MySQL存储引擎介绍

1 MySQL存储引擎的概念

  • MySQL中数据用各种不同的技术存储在文件(或内存)中,这些技术都使用不同的存储机制、索引技巧,锁定水平,并且最终提供广泛的、不同的功能,通过选择不同的技术,能够获得额外的速度或功能,从而改善整体功能。
  • SQLServer和Oracle都使用了一种存储引擎,而MySQL有多种存储引擎。
  • 所谓的存储引擎,其实就是表的类型

2 查询MySQL中支持的存储引擎

  1. show engines;
  2. show engines \g
  3. show variables like ‘have%‘;
  4. show variables like ‘table_type‘; //查看表的存储引擎

  • 默认的存储引擎:InnoDB

3 常见三种存储引擎

3.1 InnoDB

  • 只有一种文件类型:frm
  • 支持自动增长列(auto_increment)
    • 自增长字段:如果手动赋值的值为0,null或不手动赋值,其会自动增加一个step,如果手动赋值一个以前从来没有出现过的值,则会赋值成功
  • 支持外键(foreign key)
    • 子表和主表的变化是相关联的
  • 优点:提供良好的事务管理、崩溃修复能力和并发控制
    • 是MySQL中唯一支持事务控制的存储引擎
    • InnoDB自我恢复的时间短,MyISAM也有自我恢复,时间比较长。
  • 缺点:其读写效率稍差,占用的数据空间相对比较大

3.2 MyISAM

文件类型

  • frm:存储表的结构
  • myd:存储数据
  • myi:存储索引

存储格式

  • 静态:字段类型类型为类似char,访问速度比较快
  • 动态:字段的数据类型为类似varchar
  • 压缩:只针对只读的表,可以让其压缩,这样可以提高性能。

优点:战胜空间小,处理速度快

缺点:不支持事务的完整性和并发性

3.3 MEMORY

  • MEMORY存储引擎是MySQL中的一类特殊的存储引擎。其使用存储在内存中的内容来创建表,而且所有数据也存储在内存中
  • 优点:片是速度非常快
  • 缺点:其数据易丢失,生命周期短

4 如何选择存储引擎

  • InnoDB存储引擎:用于事务处理应用程序,具有众多特性,包括ACID事务支持,支持外键,同时支持崩溃修复能力和并发控制。适用于对事务完整性要求比较高,要求并发控制,需要频繁进行更新、删除操作的数据库
  • MyISAM存储引擎:主要用于非事务表,它提高调整存储和检索,以及全文搜索能力。适用于表主要用插入新记录和读出记录在案,应用完整性、并发性要求很低
  • MEMORY存储引擎:提供“内存”表,所有数据都在内在中,数据处理速度快,但安全性不高。适用于需要很快读写速度,对数据的安全性要求较低,使用相对较小的数据库表

5 如何指定表的存储引擎

捐赠我们
    良师益友工作室一直在致力于帮助编程爱好更加快速方便地学习编程,如果您对我们的成果表示认同并且觉得对你有所帮助,欢迎您对我们捐赠^_^。

时间: 2024-10-10 19:24:03

第三章 MySQL存储引擎介绍的相关文章

第 3 章 MySQL 存储引擎简介

3.1MySQL 存储引擎概述 到后来,MySQL 意识到需要更改架构,将前端的业务逻辑和后端数据存储以清晰的层次结构拆分开的同时,对ISAM 做了功能上面的扩展和代码的重构,这就是MyISAM存储引擎的由来. MySQL 的插件式存储引擎主要包括MyISAM,Innodb,NDB Cluster,Maria,Falcon, Memory,Archive,Merge,Federated 等,其中最著名而且使用最为广泛的MyISAM 和Innodb两种存储引擎.MyISAM 是MySQL 最早的I

数据库 之 Mysql存储引擎介绍

1  存储引擎概念介绍 存储引擎其实就是如何实现存储数据,如何为存储的数据建立索引以及如何更新,查询数据等技术实现的方法.数据库中的存储引擎其实是对使用了该引擎的表进行某种设置,数据库中的表设定了什么存储引擎,那么该表在数据存储方式.数据更新方式.数据查询性能以及是否支持索引等方面就会有不同的"效果". 通过选择不同的存储引擎,获得额外的速度或者功能,从而改善服务器的应用的整体功能.例如,如果你在研究大量的临时数据,你也许需要使用内存MySQL存储引擎.内存存储引擎能够在内存中存储所有

mysql 存储引擎介绍

一  存储引擎解释 首先确定一点,存储引擎的概念是MySQL里面才有的,不是所有的关系型数据库都有存储引擎这个概念,后面我们还会说,但是现在要确定这一点. 在讲清楚什么是存储引擎之前,我们先来个比喻,我们都知道录制一个视频文件,可以转换成不同的格式,例如mp4,avi,wmv等,而存在我们电脑的磁盘上也会存在于不同类型的文件系统中如windows里常见的ntfs.fat32,存在于linux里常见的ext3,ext4,xfs,但是,给我们或者用户看懂实际视频内容都是一样的.直观区别是,占用系统的

MySQL存储引擎介绍 w

一 存储引擎解释 首先确定一点,存储引擎的概念是MySQL里面才有的,不是所有的关系型数据库都有存储引擎这个概念,后面我们还会说,但是现在要确定这一点. 在讲清楚什么是存储引擎之前,我们先来个比喻,我们都知道录制一个视频文件,可以转换成不同的格式,例如mp4,avi,wmv等,而存在我们电脑的磁盘上也会存在于不同类型的文件系统中如windows里常见的ntfs.fat32,存在于linux里常见的ext3,ext4,xfs,但是,给我们或者用户看懂实际视频内容都是一样的.直观区别是,占用系统的空

MySQL存储引擎介绍

MySQL主要有两个层次组成:MySQL核心[MySQL服务器层].插件式存储引擎    MySQL处理机制无论在核心上如何被解析,最后如果真正实现跟文件系统上的文件交互时,一定要经过存储引擎来完成.真正把MySQL操作接收下来并提交给底层文件上对应的数据完成操作,并将结果返回给上层MySQL核心的是MySQL存储引擎,各存储引擎通过统一的API向MySQL服务器提供一个统一的数据存取.加锁等操作.        MySQL内部表状态信息查看,使用  show table status like

三十一.MySQL存储引擎 、 数据导入导出 管理表记录 匹配条件

1.MySQL存储引擎的配置 查看服务支持的存储引擎 查看默认存储类型 更改表的存储引擎 设置数据库服务默认使用的存储引擎 1.1 查看存储引擎信息 mysql> SHOW ENGINES\G 1.2 查看默认存储类型 mysql> SHOW VARIABLES LIKE 'default_storage_engine'; +------------------------+--------+ | Variable_name          | Value  | +-------------

mysql 存储引擎 介绍

一.InnodDB InnoDB表是基于聚蔟索引建立的,默认级别是 REPEATABLE_READ(可重复读),支持热备份,mysql 的其它引擎不支持. 支持行级锁,用来处理大量的 短期事务.InnodDB的性能和自动崩溃恢复特性,但得它在非事务型存储的需求中中也很流行.除非有非常的特别的原因需要使用其它的存储引擎,否则应该优先考虑InnoDB引擎. 二.MyISAM MyISAM提供了大量的特性,包括全文索引.压缩.空间函数(GIS)等,但MyISAM不支持事务和行级锁而且有一个毫无疑问的缺

mysql 存储引擎介绍1

1.1  存储引擎的使用 数据库中的各表均被(在创建表时)指定的存储引擎来处理. 服务器可用的引擎依赖于以下因素: MySQL的版本 服务器在开发时如何被配置 启动选项 为了解当前服务器中有哪些存储引擎可用,可使用SHOW ENGINES语句: mysql> SHOW ENGINES\G 在创建表时,可使用ENGINE选项为CREATE TABLE语句显式指定存储引擎. CREATE TABLE t (i INT) ENGINE = MyISAM; 如果在创建表时没有显式指定存储引擎,则该表使用

mysql 存储引擎介绍2

了解MYSQL的都知道,在MYSQL中建立任何一张数据表,在其数据目录对应的数据库目录下都有对应表的.frm文件,.frm文件是用来保存每个数据表的元数据(meta)信息,包括表结构的定义等,.frm文件跟数据库存储引擎无关,也就是任何存储引擎的数据表都必须有.frm文件,命名方式为数据表名.frm,如user.frm. .frm文件可以用来在数据库崩溃时恢复表结构. MySQL文件包括MySQL所建数据库文件和MySQL所用引擎创建的数据库文件. .frm 文件与操作系统和数据库引擎无关,都有