美文网首页
5.MySQL存储引擎

5.MySQL存储引擎

作者: 免跪姓黄 | 来源:发表于2020-07-01 16:05 被阅读0次

MySQL存储引擎

  1. 什么是存储引擎

    • MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能。

    • 这些不同的技术以及配套的相关功能在MySQL中被称作存储引擎(也称作表类型)。

    • MySQL默认配置了许多不同的存储引擎,可以预先设置或者在MySQL服务器中启用。你可以选择适用于服务器、数据库和表格的存储引擎,以便在选择如何存储你的信息、如何检索这些信息以及你需要你的数据结合什么性能和功能的时候为你提供最大的灵活性。

    • 选择如何存储和检索你的数据的这种灵活性是MySQL为什么如此受欢迎的主要原因。其它数据库系统(包括大多数商业选择)仅支持一种类型的数据存储

    • 遗憾的是,其它类型的数据库解决方案采取的“一个尺码满足一切需求”的方式意味着你要么就牺牲一些性能,要么你就用几个小时甚至几天的时间详细调整你的数据库。使用MySQL,我们仅需要修改我们使用的存储引擎就可以了。


  2. MySQL支持的存储引擎

    • MySQL支持的存储引擎包括InnoDB、MyISAM、MEMORY、CSV、BLACKHOLE、FEDERATED、MRG_MYISAM、ARCHIVE、PERFORMANCE_SCHEMA。其中NDB和InnoDB提供事务安全表,其他存储引擎都是非事务安全表。

    • 查看当前数据库存储引擎

      show variables like "default_storage_engine";
      
    • 查看当前数据库支持的存储引擎

      show engines \G;
      

  3. 存储引擎的一些概念

    • 事务:为保证数据完整性,将多个操作组合成一个原子性操作。原子性操作不可再进行拆分,从开启事务、中间的多个操作,一直到最后提交事务,被当成一个整体,这个整体执行成功才算成功,有一个操作不成功都不算成功,之前的操作也都全部回滚。保证数据安全。事务的四大特性分别是:原子性、一致性、隔离性、持久性。

      begin  # 开启事务
      select语句 for update  # for update表示加上行级锁
      # 其他SQL语句
      commit  # 提交事务
      
    • 行级锁:在修改数据的时候只锁定某一行,在修改少量行数据的时候使用。

    • 表级锁:在修改数据的时候锁定整张表,在修改大量行数据的时候使用。

    • 外键:将表中的固定重复信息,单独建立在一张表中,通过外键的形式将两张表进行关联,同时约束两张表的关联字段不能随意添加和删除,因此能够极大的降低数据增删改的出错率。


  4. 常用存储引擎及适用场景

    • InnoDB(MySQL 5.6以后默认的存储引擎,最常用)

      • 数据和索引存储在一起,分为两个文件,数据索引和表结构

      • 数据持久化(存在硬盘中)

      • 支持事务

      • 支持行级锁

      • 支持表级锁

      • 支持外键

    • MyISAM(MsSQL 5.5以前默认的存储引擎)

      • 数据和索引分开存储,分为三个文件,数据、索引和表结构

      • 数据持久化(存在硬盘中)

      • 不支持事务

      • 不支持行级锁

      • 支持表级锁

      • 不支持外键

    • MEMORY

      • 数据存在内存中,只有一个文件,表结构

      • 断电数据消失

      • 不支持事务

      • 不支持行级锁

      • 不支持表级锁

      • 不支持外键


相关文章

  • 5.MySQL存储引擎

    MySQL存储引擎 什么是存储引擎MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技...

  • MySQL存储引擎、事务日志并发访问以及隔离级别

    MySQL存储引擎 MySQL是插件式存储存储引擎,支持多种存储引擎常见的存储引擎有:MyISAM, Aria, ...

  • 「Mysql索引原理(一)」1.存储引擎简介

    存储引擎 0. 前言1. 存储引擎查看2. InnoDB存储引擎特性存储InnoDB历史3. MyISAM存储引擎...

  • MySQL数据库中存储引擎和数据类型

    一.什么是存储引擎 二.操作存储引擎 查看存储引擎 1.查看mysql支持的存储引擎 2.看你的mysql当前默认...

  • 浅谈InnoDB存储引擎中的锁

    InnoDB存储引擎是MySQL数据库默认的事务型存储引擎,也是使用比较多的存储引擎。InnoDB存储引擎不紧支持...

  • MySQL常用配置查询

    版本查询 存储引擎查询 当前支持的存储引擎 查看当前默认存储引擎 查看表所使用的存储引擎 查看用户信息 查看当前登...

  • 分布式基础-存储引擎

    题目和文章内容有点不太符合,这里存储引擎是指单机存储引擎。对于分布式存储系统来说,存储引擎是必须的。存储引擎决定了...

  • MySQL进阶——存储引擎

    上篇文章我们学习了MySQL基础——事务,这篇文章学习MySQL进阶——存储引擎。 存储引擎 存储引擎就是存储数据...

  • Mongodb存储引擎

    插件式存储引擎API 插件式存储引擎API的引入为处理更多不同类型的业务提供了无限可能,内存存储引擎、事务存储引擎...

  • Error 1701:Specified key was too

    出现以上问题;一 、先查看导出库与导入存储引擎 修改存储引擎语句 设置存储引擎一致即可导入;若不想修改存储引擎,则...

网友评论

      本文标题:5.MySQL存储引擎

      本文链接:https://www.haomeiwen.com/subject/taqhqktx.html