MySql存储引擎的作用

目录
  • 1. 存储引擎是什么
  • 2. 如何给表添加指定存储引擎
  • 3. mysql支持那些存储引擎
  • 4. mysql常用存储引擎的介绍
    • 1. MyISAM存储引擎
    • 2. InnoDB存储引擎
    • 3. MEMORY存储引擎

1. 存储引擎是什么

存储引擎是 MySql 中特有的一个术语,其它数据库中没有。

实际上存储引擎是一个表存储/组织数据的方式。

不同的存储引擎,表存储数据的方式不同。

2. 如何给表添加指定存储引擎

mysql> show create table t_student;
| t_student | CREATE TABLE `t_student` (
  `no` int NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  `cno` int DEFAULT NULL,
  PRIMARY KEY (`no`),
  KEY `cno` (`cno`),
  CONSTRAINT `t_student_ibfk_1` FOREIGN KEY (`cno`) REFERENCES `t_class` (`classno`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci |

在建表的时候可以在最后小括号的 “)” 的右边使用:

ENGINE 来指定存储引擎

CHARSET 来指定这张表的字符编码方式

mysql 的默认存储引擎是:InnoDB

mysql 的默认的字符编码方式是:utf8

mysql> create table t_product (id int primary key, name varchar(255))engine=InnoDB default charset=utf8;

3. mysql支持那些存储引擎

mysql> show engines \g

+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine             | Support | Comment                                                        | Transactions | XA   | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| MEMORY             | YES     | Hash based, stored in memory, useful for temporary tables      | NO           | NO   | NO         |
| MRG_MYISAM         | YES     | Collection of identical MyISAM tables                          | NO           | NO   | NO         |
| CSV                | YES     | CSV storage engine                                             | NO           | NO   | NO         |
| FEDERATED          | NO      | Federated MySQL storage engine                                 | NULL         | NULL | NULL       |
| PERFORMANCE_SCHEMA | YES     | Performance Schema                                             | NO           | NO   | NO         |
| MyISAM             | YES     | MyISAM storage engine                                          | NO           | NO   | NO         |
| InnoDB             | DEFAULT | Supports transactions, row-level locking, and foreign keys     | YES          | YES  | YES        |
| BLACKHOLE          | YES     | /dev/null storage engine (anything you write to it disappears) | NO           | NO   | NO         |
| ARCHIVE            | YES     | Archive storage engine                                         | NO           | NO   | NO         |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+

mysql 支持九大存储引擎

mysql 的版本不同,支持的引擎情况不同

4. mysql常用存储引擎的介绍

1. MyISAM存储引擎

特征:

使用三个文件表示每个表

  • 格式文件 - 存储表结构的定义(mytable.frm)
  • 数据文件 - 存储表行的内容(mytable.MYD)
  • 索引文件 - 存储表上索引(mytable.MYI):索引是一本书的目录,可以缩小扫描范围,提供查询效率。

优点:

由于表由三个文件来存储因此可以被压缩、只读来存储空间

缺点:

不支持事务,安全性低

对于一张表来说,如果添加 unique 约束,在被约束的字段上就会自动创建索引

2. InnoDB存储引擎

InnoDB 是 mysql 默认的存储引擎,同时也是一个重量级的存储引擎。

InnoDB 支持事务,支持数据库崩溃后自动恢复机制。

InnoDB 存储引擎最主要的特点是:非常安全!!!

特征:

  • 每个 InnoDB 表在数据库目录中以.frm 格式文件表示
  • InnoDB 表空间 tablespace 被用于存储表的内容
  • 提供一组用来记录事务性活动的日志文件
  • 用 COMMIT(提交)、SAVEPOINT 及 ROLLBACK(回滚)支持事务处理
  • 提供全 ACID 兼容
  • 在 MySQL 服务器崩溃后提供自动恢复
  • 多版本(MVCC)和行级锁定
  • 支持外键及引用的完整性,包括级联删除和更新

3. MEMORY存储引擎

使用 MEMORY 存储引擎的表,其数据在内存中,且行的长度固定。

这两个特点使得 MEMORY 存储引擎非常快!!!

特征:

  • 在数据库目录内,每个表均以.frm 格式的文件表示。
  • 表数据及索引被存储在内存中。
  • 表级锁机制。
  • 不能包含 TEXT 或 BLOB 字段。

MEMORY 存储引擎以前被称为 HEAP 引擎。

优点:

查询效率最高!!!不需要和硬盘交互。

缺点:

不安全,关机之后数据消失,因为数据和索引都是在内存当中。

到此这篇关于MySql存储引擎的作用的文章就介绍到这了,更多相关MySql存储引擎内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • MySQL的存储引擎InnoDB和MyISAM

    目录 1.MyISAM底层存储 1.1MyISAM底层存储(非聚集索引方式) 1.2InnoDB底层存储(聚集索引方式) 2.InnoDB与MyISAM简介 3.MyISAM与InnoDB的比较 4.什么时候用MyISAM数据存储引擎?什么时候用InnoDB数据存储引擎? 1.MyISAM底层存储 (非聚集索引方式)与InnoDB底层存储(聚集索引方式) 1.1MyISAM底层存储(非聚集索引方式) Myisam 创建表后生成的文件有三个: frm:创建表的语句 MYD:表里面的数据文件(myi

  • MySQL数据库存储引擎介绍及数据库的操作详解

    目录 MySQL存储引擎 InnoDB存储引擎 MyISAM储存引擎 Memory存储引擎 Archive存储引擎 数据库的相关操作 创建数据库 修改数据库 删除数据库 查看数据库列表 打开数据库 MySQL存储引擎 InnoDB存储引擎 InnoDB存储引擎是MySQL常见的的存储引擎, 它给MySQL的表提供了事务处理.回滚.崩溃修复和多版本并发控制等功能: 支持列值自动增长(列值不能为空且必须唯一): 支持外键. 缺点: 占用的空间相对较大 MyISAM储存引擎 MyISAM储存引擎支持3

  • MySQL数据分析存储引擎示例讲解

    目录 1.引入案例 2.查看系统默认的存储引擎和默认字符集 3.常见的存储引擎 1)MyISAM:不支持事务.(张马虎) MyISAM的优缺点: 2)InnoDB:支持事务.(李小心) InnoDB的优缺点: 3)MEMORY(这个了解一下就行了) MEMORY的优缺点: 4.下面这张图了解就行 今天我们来说说MySQL存储引擎,作为从事数据分析行业的朋友老说,我们不必细究MySQL存储引擎到底什么,我们了解就行了. 1.引入案例 有张马虎.李小心两个人,都是地铁口的自行车管理员,每天都有很多人

  • Mysql数据库支持的存储引擎对比

    目录 存储引擎 MySQL支持的存储引擎 并发控制 锁 锁颗粒 事务 外键 索引 各种存储引擎的特点 存储引擎 Mysql可以将数据以不同的技术存储在文件(内存)中,这种技术就称为存储引擎. 每一种存储引擎使用不同的存储机制.索引技巧.锁定水平,最终提供广泛且不同的功能. MySQL支持的存储引擎 MyISAM InnoDB Memory CSV Archive 并发控制 当多个连接对记录进行修改时保证数据的一致性和完整性. 锁 1.共享锁(读锁):在同一时间段内,多个用户可以读取同一个资源,读

  • MySQL表类型 存储引擎 的选择

    目录 1.查看当前数据库支出的存储引擎 方法1: 方法2: 2.ENGINE={存储引起类型}  创建表的时候,设置存储引擎 3.alter able tablename engine={存储引起类型} 修改表为其他存储引擎 3.1 常用存储引擎的对比 3.2 常用存储引擎学习(MyISAM.InnoDB.MEMORY 和 MERGE) 1.查看当前数据库支出的存储引擎 方法1: mysql> show engines \G; *************************** 1. row

  • 一起了解了解MySQL存储引擎

    目录 前言 一.MySQL主要存储引擎: 二.实例介绍它们(不同的存储引擎在存储表的时候的异同点) 前言 在日常生活中文件格式有很多种,并且针对不同的文件格式会有对应不同存储方式和处理机制(如:.txt..pdf..mp4.......) 针对不同的数据应该有对应的不同的处理机制来存储 存储引擎就是不同的处理机制 一.MySQL主要存储引擎: .Innodb  .myisam .memory .blackhole 下面我们来一一了解它们 ''' Innodb 是MySQL5.5版本及之后默认的存

  • 深入理解mysql事务与存储引擎

    目录 一.MySQL事务 1.事务的概念 2.事务的 ACID 特点 3.事物之间的互相影响 二.Mysql及事务隔离级别 1.查询全局事务隔离级别 2.查询会话事务隔离级别 3.设置全局事务隔离级别 4.设置会话事务隔离级别 三.事务控制语句 1.相关语句 2.案例 3.使用 set 设置控制事务 四.MySQL 存储引擎 1.存储引擎概念介绍 2.查看系统支持的存储引擎 3.查看表使用的存储引擎 4.修改存储引擎 一.MySQL事务 1.事务的概念 (1)事务是一种机制.一个操作序列,包含了

  • MySql中的存储引擎和索引

    目录 一.MySql的逻辑结构 二.什么是存储引擎 MySQL支持的存储引擎 三.操作 四.数据库的索引 索引的分类 五.索引操作 一.MySql的逻辑结构 MySQL体系结构分为四层:分别是连接层.服务层.存储引擎层.系统文件层. 连接层又称为客户端连接器(Client Connectors):提供与MySQL服务器建立的支持.连接池:管理.缓冲用户的连接,线程处理等需要缓存的需求. 服务层是MySQL Server的核心:主要包含系统管理和控制工具.SQL接口.解析器.查询优化器.缓存. 存

  • MySql存储引擎的作用

    目录 1. 存储引擎是什么 2. 如何给表添加指定存储引擎 3. mysql支持那些存储引擎 4. mysql常用存储引擎的介绍 1. MyISAM存储引擎 2. InnoDB存储引擎 3. MEMORY存储引擎 1. 存储引擎是什么 存储引擎是 MySql 中特有的一个术语,其它数据库中没有. 实际上存储引擎是一个表存储/组织数据的方式. 不同的存储引擎,表存储数据的方式不同. 2. 如何给表添加指定存储引擎 mysql> show create table t_student; | t_st

  • MySQL高级学习笔记(三):Mysql逻辑架构介绍、mysql存储引擎详解

    Mysql逻辑架构介绍总体概览 和其它数据库相比,MySQL有点与众不同,它的架构可以在多种不同场景中应用并发挥良好作用.主要体现在存储引擎的架构上,插件式的存储引擎架构将查询处理和其它的系统任务以及数据的存储提取相分离 . 这种架构可以根据业务的需求和实际需要选择合适的存储引擎. controller层: Connectors:连接层,c .java等连接mysql 业务逻辑处理成: Connection Pool:连接层 c3p0连接池等 Manager Service util:备份.容灾

  • MySql 存储引擎和索引相关知识总结

    存储引擎 什么是数据库存储引擎? 数据库引擎是数据库底层软件组件,不同的存储引擎提供不同的存储机制,索引技巧,锁定水平等功能,使用不同的数据库引擎,可以获得特定的功能 如何查看引擎? --如何查看数据库支持的引擎 show engines; ​ --查看当前数据的引擎: show create table 表名\G ​ --查看当前库所有表的引擎: show table status\G 建表时指定引擎 create table yingqin (id int,name varchar(20))

  • MySQL存储引擎MyISAM与InnoDB的9点区别

    虽然MySQL里的存储引擎不只是MyISAM与InnoDB这两个,但常用的就是它俩了.可能有站长并未注意过MySQL的存储引擎,其实存储引擎也是数据库设计里的一大重要点,那么博客系统应该使用哪种存储引擎呢?下面我们分别来看两种存储引擎的区别. MySQL存储引擎MyISAM与InnoDB的区别 一.InnoDB支持事务,MyISAM不支持,这一点是非常之重要.事务是一种高级的处理方式,如在一些列增删改中只要哪个出错还可以回滚还原,而MyISAM就不可以了. 二.MyISAM适合查询以及插入为主的

  • MySQL存储引擎总结

    前言 在数据库中存的就是一张张有着千丝万缕关系的表,所以表设计的好坏,将直接影响着整个数据库.而在设计表的时候,我们都会关注一个问题,使用什么存储引擎.等一下,存储引擎?什么是存储引擎? 什么是存储引擎? 关系数据库表是用于存储和组织信息的数据结构,可以将表理解为由行和列组成的表格,类似于Excel的电子表格的形式.有的表简单,有的表复杂,有的表根本不用来存储任何长期的数据,有的表读取时非常快,但是插入数据时去很差:而我们在实际开发过程中,就可能需要各种各样的表,不同的表,就意味着存储不同类型的

  • Mysql存储引擎MyISAM的常见问题(表损坏、无法访问、磁盘空间不足)

    本文为大家分享了解决Mysql存储引擎MyISAM常见问题的方法,供大家参考,具体内容如下 一.处理MyISAM存储引擎的表损坏 在使用MySQL,可能会遇到过MyISAM存储引擎的表损坏的情况.如以下情况: .frm被锁定不能修改 找不到.myi文件(索引文件) 意外结束记录 文件被毁坏 从表处理器得到错误nnn 解决办法1: 使用MySQL自带的myisamchk工具进行修复 打开bin目录,可以看到该工具 命令如下 myisamchk -r tablename r代表recover 或 m

  • 如何选择合适的MySQL存储引擎

    MySQL支持数个存储引擎作为对不同表的类型的处理器.MySQL存储引擎包括处理事务安全表的引擎和处理非事务安全表的引擎: ◆ MyISAM管理非事务表.它提供高速存储和检索,以及全文搜索能力.MyISAM在所有MySQL配置里被支持,它是默认的存储引擎,除非你配置MySQL默认使用另外一个引擎. ◆ MEMORY存储引擎提供"内存中"表.MERGE存储引擎允许集合将被处理同样的MyISAM表作为一个单独的表.就像MyISAM一样,MEMORY和MERGE存储引擎处理非事务表,这两个引

  • Mysql存储引擎详解

    存储引擎的介绍 关系型数据库表是用来存储和组织信息的数据结构,可以将表理解为由行和列组成的表格. 由于表的类型不同,我们在实际开发过程中,就有可能需要各种各样的表,不同的表就意味着存储不同类型的数据,数据的处理上也会存在差异 对于Mysql来说,它提供了很多种类型的存储引擎 存储引擎说白了就是如何存储数据,如何为存储的数据建立索引和如何更新.查询数据等技术的实现方法. 因为在关系型数据库中数据的存储是以表的形式存储 的,所以存储引擎也可以称为表类型(即存储和操作此表的类型) Mysql中的存储引

  • 基于Mysql存储引擎的深入分析

    MySQL有很多种存储引擎,针对不同的应用,可以为每张表选择合适的存储引擎,这样有助于提升MySQL性能.创建新闻表news: 复制代码 代码如下: CREATE  TABLE `sandbox`.`news` (      `id` INT NOT NULL AUTO_INCREMENT ,      `name` VARCHAR(45) NULL ,          `content` VARCHAR(45) NULL ,      `created` VARCHAR(45) NULL ,

  • MySQL存储引擎InnoDB的配置与使用的讲解

    MyISAM和InnoDB是MySQL最常有的存储引擎,上一篇我们讲述了InnoDB与MyISAM之间的区别:由于MyISAM不支持事务,当我们需要使用一个健壮的事务型存储引擎的时候,InnoDB必然是最好的选择. innodb 通过多版本并发控制(MVCC)来获得高并发性,并且实现了SQL标准的4种隔离级别,默认为REPEATABLE级别.同时,使用一种被称为next-key locking的策略来避免幻读(phantom)现象的产生.除此之外,InnoDB存储引擎还提供了插入缓冲(inser

随机推荐