当前位置: 首页 > news >正文

MySQL支持哪些存储引擎

mysql支持九大存储引擎:

1)MYISAM存储引擎(优点:可被转换为压缩、只读表来节省空间。)

           它管理的表具有以下特征:

                  使用三个文件表示每个表

                      格式文件-存储表结构的定义(mytable.frm)

                      数据文件-存储表行的内容(mytable.MYD)

                      索引文件-存储表上索引(mytable.MYI):索引是一本书的目录,缩小扫描范围,提高查询效率的一种机制,可被转换为压缩、只读表来节省空间。

提示:对于一张表来说,只要是主键,或者加有unique约束的字段上会自动创建索引。

2)InooDB存储引擎(优点:非常安全)

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

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

最大的特点:支持事务。以保证数据的安全性,效率不是很高,并且也不能压缩,不能转换为只读,不能很好的节省存储空间。

3)MEMORY存储引擎(HEAP引擎)

优点:查询效率是最高的

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

使用memory存储引擎的表,其数据存储在内存中,且行的长度固定,这两个特点使memory存储引擎非常快。

4)事务          一个事务就是一个完整的业务逻辑。是一个最小的工作单元,不可再分

转账:A给B转账1000元

A的账户-1000元(update语句),B的账户+1000元(update语句)

这两条语句必须同时成功或者失败,这样才能保证钱是正确的。

只有DML语句才有事务一说:insert增 delete删 update改

只有以上三个语句是对数据库表中的数据进行增删改的,一旦涉及增删改就要考虑安全问题

数据安全第一位

本质上一个事务就是多条DML语句同时成功或者同时失败。

提交事务commit:是一种全部成功的结束。

回滚事务rollback:是一种全部失败的结束。

mysql默认情况下是支持自动提交事务的。

事务包括4个特性:

A:原子性

说明事务是最小的工作单元,不可再分

C:一致性

所有事务要求,在同一个事务当中,所有操作必须同时成功或同时失败,以保证数据的一致性。

I:隔离性

A事务和B事务具有一定的隔离

墙越厚,隔离级别越高。

D:持久性

事务最终结束的一个保障。事务提交,相当于没有保存在硬盘上的数据保存在硬盘上。

事务和事务之间的隔离级别有四个级别:

1)读未提交 read uncommitted(没有提交就读到了):事务A可以读取到事务B未提交的数据。

脏读dirty read:读到了脏数据。对方没有提交的数据我们认为是脏数据

2)读已提交read committed(提交之后才能读到):事务A只能读取到事务B提交之后的数据。

这种隔离级别解决了脏读现象

存在的问题:不可重复读取数据(在事务开启之后,第一次读到的是三条,此时事务还没有结束,第二次再读读到的数据就变成了4条)

这种隔离级别是比较真实的数据,每一次读到的数据是绝对的真实。

是oracle数据库默认的隔离级别

3)可重复读repeatable read(提交之后也读不到,永远读取到的都是刚开启事务时的数据

解决了不可重复读的问题

存在的问题:可能会出现幻读。(每一次读到的数据都是幻象,不够真实)

是mysql默认的隔离级别

4)序列化/串行化serializable(最高隔离级别)

最高隔离级别,效率最低。解决了所有的问题。这种隔离级别表示事务排队,不能并发

类似synchronized线程同步(事务同步)

每一次读取到的数据都是最真实的,并且效率是最低的

http://www.lryc.cn/news/185810.html

相关文章:

  • ElementUI结合Vue完成主页的CUD(增删改)表单验证
  • Flutter开发笔记 —— 语音消息功能实现
  • 冒泡排序和选择排序
  • 【深度学习】UNIT-DDPM核心讲解
  • Java 线程的优先级
  • 金融数学方法:牛顿法
  • MongoTemplate | 多条件查询
  • 优秀程序员是怎么思考的?
  • 【juc】countdownlatch实现游戏进度
  • Spring Webflux HttpHandler源码整理
  • Qt扩展-Advanced-Docking 简介及配置
  • Decorator
  • 分布式文件系统HDFS(林子雨慕课课程)
  • CSS中:root伪类的使用
  • VulnHub JANGOW
  • OpenMesh 获取网格面片各个顶点
  • 【前端设计模式】之原型模式
  • 软件设计原则
  • 【面试HOT100】哈希双指针滑动窗口
  • Ubuntu20.04 配置 yolov5_ros 功能包记录
  • Flink的处理函数——processFunction
  • Linux系统中的ps命令详解及用法介绍
  • 机器学习笔记 - 基于pytorch、grad-cam的计算机视觉的高级可解释人工智能
  • Python 编程基础 | 第五章-类与对象 | 5.1、定义类
  • 合宙Air780e+luatos+腾讯云物联网平台完成设备通信与控制(属性上报+4G远程点灯)
  • c++系列之string的模拟实现
  • Spring的beanName生成器AnnotationBeanNameGenerator
  • FFmpeg 命令:从入门到精通 | ffmpeg 命令直播
  • A (1087) : DS单链表--类实现
  • 异常:找不到匹配的key exchange算法