返回顶部
首页 > 资讯 > 数据库 >MySQL学习笔记(7):存储引擎
  • 560
分享到

MySQL学习笔记(7):存储引擎

MySQL学习笔记(7):存储引擎 2020-04-30 00:04:25 560人浏览 才女
摘要

本文更新于2019-06-23,使用Mysql 5.7,操作系统为Deepin 15.4。 目录InnoDBMyISAMMERGEMEMORYNDB常用存储引擎对比 和大多数数据库不同,插件式存储引擎是mysql最重要的特性之一。

MySQL学习笔记(7):存储引擎

本文更新于2019-06-23,使用Mysql 5.7,操作系统为Deepin 15.4。

目录

  • InnoDB
  • MyISAM
  • MERGE
  • MEMORY
  • NDB
  • 常用存储引擎对比

和大多数数据库不同,插件式存储引擎是mysql最重要的特性之一。

InnoDB

InnoDB表提供事务安全

InnoDB表支持外键。创建外键时,要求父表必须有对应的索引,子表在创建外键时也会自动创建对应的索引。如父表被子表创建了外键索引,则父表的索引禁止被删除。在导入多个表的数据时,或在执行LOAD DATAALTER TABLE操作的时候,可以使用SET foreign_key_checks=0关闭外键检查。执行完后,使用SET foreign_key_checks=1重新打开。

InnoDB表自动增长列必需是索引,或组合索引的第一列。

InnoDB存储表和索引有以下两种方式:

  • 使用共享表空间存储:表结构保存在.frm文件中,数据和索引保存在innodb_data_home_dirinnodb_data_file_path定义的表空间中,可以是多个文件。
  • 使用多表空间存储:表结构保存在.frm文件中,每个表的数据和索引单独保存在.ibd文件中。如果是分区表,则每个分区对应单独的.ibd文件,文件名为“表名+分区名”,可以在创建分区的时候指定每个分区的文件位置。共享表空间仍然是必须的,InnoDB把内部数据词典和在线重做日志放在共享表空间中。

使用参数innodb_file_per_table可指定是否使用多表空间存储,并在重启服务器后,只且只对新建的表生效。使用多表空间存储的表,不能直接复制.frm和.ibd文件进行恢复,因为没有共享表空间的数据字典信息。但如恢复表到原来的数据库,可使用ALTER TABLE tablename DISCARD TABLESPACEALTER TABLE tablename IMPORT TABLESPACE

InnoDB表没有表元数据的缓存(如行数,因而执行COUNT(*)较慢)。

MyISAM

MyISAM表不支持事务,也不支持外键。

MyISAM表自动增长列可为组合索引的非第一列。

每个MyISAM在磁盘上存储成3个文件,数据文件和索引文件可以放置在不同的目录(需在创建表时通过DATA DIRECTORYINDEX DIRECTORY指定)。其文件名和表名相同,扩展名分别是:

  • .frm:存储表定义。
  • .MYD:MYData,存储数据。
  • .MYI:MYIndex,存储索引。

MyISAM表支持3种不同的存储格式:

  • 静态表:默认的存储格式,每条记录都是固定长度的。
  • 动态表:记录不是固定长度的,包含变长字段。
  • 压缩表:由myisampack工具创建,每条记录都被单独压缩。

MyISAM表有表元数据的缓存(如行数,因而执行COUNT(*)较快)。

MERGE

MERGE表是一组MyISAM表的组合,这些MyISAM表必须结构完全相同。MERGE表本身并没有数据,对其的任何操作实际上是对内部MyISAM表进行的。可以对MERGE表进行DROP操作,其只是删除表定义,对内部的表没有影响。

MERGE表在磁盘中保存两个文件,文件名以表名开始,.frm存储表定义,.MRG包含组合表的信息,包括MERGE表由哪些表组成、插入新数据时的依据。可以通过修改.MRG文件来修改MERGE表,但修改后需使用FLUSH TABLES刷新。

MEMORY

MEMORY表的数据放在内存中,每个MEMORY表只对应一个.frm磁盘文件。

在启动Mysql服务时使用--init-file选项,把INSERT INTO ... SELECTLOAD DATA INFILE写入文件中,就可在服务启动时从持久稳固的数据源装载表。定义MEMORY表的时候可通过MAX_ROWS指定表的最大行数。

NDB

NDB存储引擎在MySQL Cluster中使用。

常用存储引擎对比

特点 InnoDB MyISAM MERGE MEMORY NDB
存储限制 64TB 没有
事务安全 支持
机制 行锁 表锁 表锁 表锁 行锁
B树索引 支持 支持 支持 支持 支持
哈希索引 支持 支持
全文索引 支持
集群索引 支持
数据缓存 支持 支持 支持
索引缓存 支持 支持 支持 支持 支持
数据可压缩 支持
空间使用 N/A
内存使用 中等
批量插入速度
支持外键 支持
您可能感兴趣的文档:

--结束END--

本文标题: MySQL学习笔记(7):存储引擎

本文链接: https://lsjlt.com/news/6915.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • MySQL学习笔记(7):存储引擎
    本文更新于2019-06-23,使用MySQL 5.7,操作系统为Deepin 15.4。 目录InnoDBMyISAMMERGEMEMORYNDB常用存储引擎对比 和大多数数据库不同,插件式存储引擎是MySQL最重要的特性之一。...
    99+
    2020-04-30
    MySQL学习笔记(7):存储引擎
  • MySQL学习笔记(二):MyISAM 存储引擎
    MyISAM 存储引擎MyISAM 基于旧的 (不再可用) ISAM 存储引擎, 但有许多有用的扩展。每个 MyISAM 表都存储在三个文件中的磁盘上。这些文件具有以表名开头的名称, 并具有用于指示文件类型...
    99+
    2024-04-02
  • MySQL(7)-mysql索引和存储引擎
         本篇博客讲的是MySQL的索引的功能和使用 , 以及存储引擎的基本简介 一. mysql索引索引的简介和作用索引在MySQL中叫做"键" , 是存储引擎用于快速找到记录的一种数据结构 . 索引对良...
    99+
    2024-04-02
  • MySQL高级学习笔记(三):Mysql逻辑架构介绍、mysql存储引擎详解
    Mysql逻辑架构介绍总体概览 和其它数据库相比,MySQL有点与众不同,它的架构可以在多种不同场景中应用并发挥良好作用。主要体现在存储引擎的架构上,插件式的存储引擎架构将查询处理和其它的系统任务以及数据的...
    99+
    2024-04-02
  • mysql存储引擎记录
    MyISAM Mysql5.5之前的默认数据库引擎,最为常用。拥有较高的插入,查询速度,但不支持事务InnoDB事务型数据库的首选引擎,支持ACID事务,支持行级锁定,MySQL 5.5起成为默认...
    99+
    2024-04-02
  • 数据库学习之九:mysql 存储引擎
    九、mysql 存储引擎 1、课程大纲 存储引擎的介绍 mysql中的存储引擎分类 mysql存储引擎设置 mysql,innodb引擎存储结构 mysql中的事物 mysql中的锁 2、mysql存储引擎介绍 mys...
    99+
    2014-05-09
    数据库学习之九:mysql 存储引擎
  • 如何学习MySQL约束及存储引擎
    这期内容当中小编将会给大家带来有关如何学习MySQL约束及存储引擎,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1. mysql约束# ### char varchar&nb...
    99+
    2023-06-28
  • python 学习笔记 7 -- Pyt
    学习一门语言最重要的功课是练习与复习,在《笨方法学Python》中第三十七节虽然没有教你任何内容,但是它提醒我们:“学了这么多,你还能记得多少?该复习了!”下面我们就对这一节的第一部分“关键字”来做个复习:Python中的关键字包括如下:a...
    99+
    2023-01-31
    学习笔记 python Pyt
  • MySQL学习笔记(9):索引
    本文更新于2019-07-27,使用MySQL 5.7,操作系统为Deepin 15.4。 目录能够使用索引的典型场景存在索引但不能使用索引的典型场景查看索引使用情况 在创建一个n列的复合索引时,实际是创建了n个索引。可利用索引中...
    99+
    2018-09-17
    MySQL学习笔记(9):索引
  • MySQL学习(七):Innodb存储引擎索引的实现原理
    概述 在数据库当中,索引就跟树的目录一样用来加快数据的查找速度,对于一个SQL查询操作,根据索引快速过滤掉不符合要求的数据并定位到符合要求的数据,从而不需要扫描整个表来获取所需的数据。在innodb存储引擎...
    99+
    2024-04-02
  • MYSQL存储引擎
    存储引擎 InnoDB      (1) InnoDB给MySQL提供了具有提交、回滚和崩溃恢复能力的事务安全(ACID兼容)存储引擎。InnoDB锁定在行级并且也在SELECT语句中提供一个类似Oracle的非锁定读。这些功能增加...
    99+
    2021-04-17
    MYSQL存储引擎
  • Mysql--存储引擎
      1.文件系统: 1.1 操作系统组织和存取数据的一种机制。 1.2 文件系统是一种软件。 2.文件系统类型:ext2 3 4 ,xfs 数据 2.1 不管使用什么文件系统,数据内容不会变化 2.2 不...
    99+
    2021-09-03
    Mysql--存储引擎
  • MySQL 存储引擎
      存储引擎 DBMS使用存储引擎进行数据的创建、查询、更新、删除操作。 不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎还可以获得特定的功能。 MySQL提供了多种存储引擎,最常见的有3种。    ...
    99+
    2015-11-16
    MySQL 存储引擎
  • MySQL 存储引擎
    简介:存储引擎是数据库底层软件组件,数据库管理系统使用数据引擎进行创建、查询、更新和删除操作。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能。    常见分类有:InnoDB、MyISAM、Memory等; 一、InnoDB  ...
    99+
    2017-04-10
    MySQL 存储引擎 数据库入门 数据库基础教程 数据库 mysql
  • mysql-存储引擎
    存储引擎 完整的建表语句: CREATE TABLE dept ( DEPTNO int(2) NOT NULL, DNAME varchar(14) DEFAULT NULL, LOC varchar(13) DEF...
    99+
    2020-03-17
    mysql-存储引擎
  • MYSQL——存储引擎
       MYSQL的存储引擎1   MYSQL可以将数据以不同的技术存储在文件和内存中,这种技术就成为存储引擎2   每一种存储引擎使用不同的存储机制、索引技巧、锁定水...
    99+
    2024-04-02
  • Mysql -存储引擎
    1、存储引擎:是表级别的类型。 2、查看表存储引擎的方法: (1)、mysql> show table status in mydb where name='classes'\G; 1. ...
    99+
    2024-04-02
  • 【MySQL】存储引擎
    文章目录 1. 前言2. MySQL的体系结构3. 存储引擎简介4. InnoDB介绍5. MyISAM介绍6. Memory7. 存储引擎的选择8. 总结 1. 前言 存储引擎是 MySQL 的核心组件之一,负责数据的存储和管...
    99+
    2023-08-16
    mysql 数据库 sql
  • MySQL学习笔记(11):存储过程和函数
    本文更新于2019-06-23,使用MySQL 5.7,操作系统为Deepin 15.4。 目录SQL语句创建存储过程或函数修改存储过程或函数删除存储过程或函数调用存储过程或函数变量、条件、处理、游标变量条件处理游标流程控制IFC...
    99+
    2020-01-18
    MySQL学习笔记(11):存储过程和函数
  • kubernetes Volume存储卷configMap学习笔记
    目录前言ConfigMap简介ConfigMap 通过env环境变量引用示例1:comfigMap创建示例2: configMap引用示例3 configMap items:指定输出...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作