• MySQL存储引擎


    前言

     🎈存储引擎其实就是如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。因为在关系数据库中数据的存储是以表的形式存储的,所以存储引擎也可以称为表类型(即存储和操作此表的类型)。在Oracle和SQL Server等数据库中只有一种存储引擎,所有数据存储管理机制都是一样的。而MySql数据库提供了多种存储引擎。用户可以根据不同的需求为数据表选择不同的存储引擎,用户也可以根据自己的需要编写自己的存储引擎。

    MySQL存储引擎

     🎈MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储机制索引技巧锁定水平并且最终提供广泛的不同的功能和能力。通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能。它可以预先设置或者在MySQL服务器中启用。你可以选择适用于服务器、数据库和表格的存储引擎,以便在选择如何存储你的信息、如何检索这些信息以及你需要你的数据结合什么性能和功能的时候为你提供最大的灵活性。

    存储引擎的任务

    • 📜在数据库引擎文档中,各主题的顺序遵循用于实现使用数据库引擎进行数据存储的系统的任务的主要顺序。
    • 📜设计并创建数据库以保存系统所需的关系表或XML文档。
    • 📜实现系统以访问和更改数据库中存储的数据。这包括实现网站或使用数据的应用程序,还包括生成使用SQL Server工具和实用工具以使用数据的过程。
    • 📜为单位或客户部署实现的系统。
    • 📜提供日常管理支持以优化数据库的性能。

    查看MySql存储引擎

    查看所有存储引擎的信息

    	SHOW ENGINES 
    
    • 1

    查看默认存储引擎

    	SHOW VARIABLES LIKE '%storage_engine%'
    
    • 1

    InnoDB存储引擎

    • InnoDB已经开发了十余年,遵循CNU通用公开许可(GPL)发行。
    • InnoDB给MySQL的表提供了事务、回滚、崩溃修复能力和多版本并发控制的事务安全
    • InnoDB是MySQL上第一个提供外键约束的表引擎。而且InnoDB对事务处理的能力,也是MySQL其他存储引擎所无法与之比拟的。
    • InnoDB存储引擎中支持自动增长列AUTO_INCREMENT。InnoDB存储引擎中支持外键(FOREIGN KEY)。
    • InnoDB存储引擎的优势在于提供了良好的事务管理、崩溃修复能力和并发控制。
    • 缺点是其读写效率稍差,占用的数据空间相对比较大。

    My ISAM存储引擎

    • MyISAM存储引擎是MySQL中常见的存储引擎,曾是MySQL的默认存储引擎。
    • MyISAM存储引擎是基于ISAM存储引擎发展起来的,它解决了ISAM的很多不足。My ISAM增加了很多有用的扩展。 MyISAM插入速度快,对空间和内存的使用较低。
    • My ISAM不支持事务,对数据的完整性、并发性支持不够。
    • MyISAM创建表时,表存储成三个文件,文件名与表名相同,分别为sdi、MYD和MYI。其中sdi文件用于存储表的元数据信息,MYD存储的是数据信息,而MYI则是索引信息

    MEMORY存储引擎

    • MEMORY存储引擎是MySQL中的一类特殊的存储引擎。
    • 其使用存储在内存中的内容来创建表,而且所有数据也放在内存中,存取速度快。
    • 这些特性都与InnoDB存储引擎、MyISAM存储引擎不同。但MEMORY存储引擎的数据安全性较低,且不能创建过大的表。

    存储引擎之间的区别

    我们首先需要考虑每一个存储引擎提供了哪些不同的核心功能。这种功能使我们能够把不同的存储引擎区别开来。我们一般把这些核心功能分为以下四类:

      🍕 字段和数据类型

      🍕锁机制

      🍕建立索引

      🍕事务处理

    如何选择存储引擎

    每种存储引擎都有各自的优势,不能笼统的说谁比谁更好,只有适合不适合。

     🎨InnoDB存储引擎:用于事务处理应用程序,具有众多特性,包括ACID事务支持,支持外键。同时支持崩溃修复能力和并发控制。
     🎨MyISAM存储引擎:管理非事务表,它提供高速存储和检索,以及全文搜索能力。
     🎨MEMORY存储引擎:MEMORY存储引擎提供“内存中”表,MEMORY存储引擎的所有数据都在内存中,数据的处理速度快,但安全性不高。

  • 相关阅读:
    天元宠物上市首日破发:市值蒸发约5亿元,薛元潮兄妹为实控人
    Maven右侧子项目maven变成灰色
    ManGe Commander 文档 v0.2
    基于深度卷积集成网络的视网膜多种疾病筛查和识别方法
    Spring介绍
    【C++】SLT 六大组件之一:容器总结
    前端对普通数字数组排序示例
    直播互动流程
    非关系型数据库(NOSQL)和关系型数据库(SQL)区别详解
    DP好题分类
  • 原文地址:https://blog.csdn.net/weixin_58286934/article/details/127971268