• MySQL存储引擎


    1.什么是数据库存储引擎?

    数据库引擎:是用于存储、处理和保护数据的核心服务。利用数据库引擎可控制访问权限并快速处理事务,从而满足企业内大多数需要处理大量数据的应用程序的要求。

    2.默认的存储引擎是InnoDB

    1.利用 show create table 表名 sql语句来查看默认的存储引擎是啥
    在这里插入图片描述

    3.查看数据库的存储引擎

    sql语句:show engines;
    在这里插入图片描述

    4.创建表并制定表的存储引擎

    1.创建数据表并且制定表存储引擎为MyISAM;

    在这里插入图片描述
    2.创建数据表并且制定表存储引擎为Memory;
    在这里插入图片描述

    5.InnoDB存储引擎

    1.InnoDB是什么?

    InnoDB是一种兼顾 高可靠性和 高性能的通用存储引擎。

    2.InnoDB的特点是什么?

    1.DML(数据操作语言:增删改查)操作遵循ACID(事务四大特性:原子性、一致性、隔离性、持久性)模型,支持事务;
    2.行级锁,提高并发访问性能;
    3.支持外键foreign key约束,保证数据的完整性和正确性。
    4.支持奔溃修复和自增列。

    3.InnoDB优缺点的分析:

    InnoDB的优势是支持事务、支持外键、支持奔溃修复和自增列。通过InnoDB来控制事务的提交和回滚,从而保证业务的完整性。
    InnoDB的缺点是读写效率低,占用数据空间较大。

    6.数据库表级锁和行级锁

    1.MySQL数据库的锁机制:不同的存储引擎支持不同的锁机制。

    MyISAM和MEMORY存储引擎采用的是表级锁。
    InnoDB存储引擎即支持行级锁,也支持表级锁,默认采用的是行级锁。

    2.MySQL主要的两种锁的特性:

    表级锁:每次操作锁整张表,开销小,加锁快,不会出现死锁,发生锁冲突的概率高,并发度低;
    行级锁:每次操作锁一行数据,开销大,加锁慢,会出现死锁,发生锁冲突概率低,并发度高。

    7.MyISAM

    1.MyISAM是早期MySQL早期默认存储引擎。

    特点:1.不支持事务,不支持外键;
    2.支持表锁,不支持行锁;
    3.访问速度快
    特点:
    xxx.sdi:存储表结构信息;
    xxx.MYD:存储数据;
    xxx.MYI:存储索引。

    2.MyISAM优缺点分析:

    MyISAM引擎保存了单独的索引文件.myi,且它的索引是直接定位到OFFSET的,而InnoDB没有单独的物理索引存储文件,InnoDB索引寻址是先定位到块数据,再定位到行数据,所以,MyISAM的查询效率是比InnoDB的查询效率高,但是它不支持事务,不支持外键,适用场景是读多写少,且对完整性要求不高的业务场景。

    8.Memory

    1.Memory的定义

    Memory:内存型数据库引擎,所以的数据都存在内存中,读写效率很高,但是MySQL服务重启后,数据会丢失,它不支持事务、外键,memory支持hash索引或者B树索引,hash索引是基于key查询的,查询效率较高,如果是基于范围查询的效率就比较低。InnoDB和MyISAM是基于B+树的数据结构实现的。

    2.Memory优缺点分析

    Memory读写能力高,但是MySQL重启之后,数据会丢失,不支持外键和事务。
    适用场景:读写效率要求高,且对数据丢失不敏感的业务场景。

  • 相关阅读:
    Java中那么多排序方法该怎么选择呢
    [蓝桥杯]避免常见坑点(输入输出问题、数据溢出问题等)
    Oracle-Ogg经典模式升级为集成模式步骤
    HQChart实战教程66-动态调整HQChart布局大小
    18.C++之继承
    前端不安装Nginx情况下部署
    【python海洋专题四十三】海洋指数画法--多色渐变柱状图
    《护理教育学》试题
    Qt开发思想探幽]QObject、模板继承和多继承
    【sql】笔记大屏展示数据查询
  • 原文地址:https://blog.csdn.net/weixin_51062428/article/details/125602768