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

开展建设文明网站活动方案成都工信部网站

开展建设文明网站活动方案,成都工信部网站,seo是什么推广,温州市网站制作哪家便宜一、MySQL 执行引擎 在 MySQL 中,执行引擎(存储引擎,Storage Engine) 是数据库的核心组件之一,负责数据的存储、检索、更新、删除等底层实现。 MySQL 中几种常见的执行引擎: 引擎名称是否支持事务是否支…

一、MySQL 执行引擎

在 MySQL 中,执行引擎(存储引擎,Storage Engine) 是数据库的核心组件之一,负责数据的存储、检索、更新、删除等底层实现。

MySQL 中几种常见的执行引擎:

引擎名称是否支持事务是否支持行级锁是否支持外键索引类型特点简述适用场景
InnoDBB+ 树、全文索引等默认引擎,支持事务、崩溃恢复、行锁,多版本控制 (MVCC)高并发写事务场景
MyISAM❌ (表锁)B+ 树、全文索引等读性能好,占用资源少,但不支持事务和行锁只读场景、日志分析
Memory❌ (表锁)哈希索引、B+ 树索引可选数据存储在内存中,速度快,重启即丢数据缓存临时数据、排序中间结果
CSV每个表一个 .csv 文件,便于导入导出简单数据交换场景
Archive无或极简索引高压缩比,适合只写不读的归档数据日志归档、历史数据
Federated依赖远程端索引查询远程服务器上的表,类似数据库间连接跨库查询
NDB(Cluster)哈希、B+树分布式存储,适用于 MySQL Cluster,高可用、高冗余高可用集群部署

二、执行引擎分类

1. InnoDB(默认)

  • 支持事务:ACID、两阶段提交;
  • 支持 MVCC:多版本并发控制;
  • 支持外键:唯一支持外键约束的引擎;
  • 行级锁:减少锁冲突,适合并发;
  • Crash-safe:配合 redo logundo log
  • B+ 树索引聚簇索引(主键)+ 二级索引

适用于大多数业务系统,尤其是有事务需求、并发高的 OLTP 系统。

2. MyISAM

  • 不支持事务和外键
  • 表级锁读取快,但写入竞争大;
  • 压缩表支持:MyISAM 表可以压缩,提高存储效率;
  • 全文索引支持早:在老版本 MySQL 中早于 InnoDB 支持全文索引。

适用于以读为主的报表系统或数据仓库,但已逐渐被 InnoDB 替代。

3. Memory(Heap)

  • 数据存储在内存中
  • 速度极快,但 断电/重启即丢数据
  • 仅表级锁
  • 默认使用 哈希索引,也可改为 B+ 树。

适用于临时表、排行榜、会话数据等不需要持久化的高速读写场景

4. Archive

  • 只支持 INSERTSELECT
  • 高压缩比、低存储开销
  • 不支持索引或只支持 minimal 索引。

适用于日志归档、审计数据存储等写多读少的业务。

5. Federated

  • 表数据存在远程服务器;
  • 本地仅存连接信息,查询时连接远端执行;
  • 不支持事务、索引依赖远程库。

适用于简单跨数据库查询,但存在网络延迟和维护问题。

三、查看和指定执行引擎

查看当前表的执行引擎:

SHOW TABLE STATUS WHERE Name = 'your_table';

SHOW CREATE TABLE your_table;

指定表的执行引擎:

CREATE TABLE example (id INT PRIMARY KEY,name VARCHAR(50)
) ENGINE = InnoDB;

四、执行引擎工作流程

在 MySQL 中,执行引擎(准确说是存储引擎)的工作流程是在语法层、优化层处理完后,如何真正与底层数据交互、执行具体操作的过程。

1. SQL 执行整体流程(与执行引擎的关系)

客户端 SQL -> 连接层 -> 分析器 -> 优化器 -> 执行器 -> 执行引擎(存储引擎) -> 磁盘数据

执行引擎是在执行器调度下,真正执行对数据的增删改查操作的底层组件

2. 执行引擎工作流程(以 InnoDB 为例)

以查询语句为例:

SELECT * FROM users WHERE id = 1;

执行引擎处理流程如下图所示:

┌──────────────────────────┐
│         执行器            │ ← 解析SQL后决定使用 InnoDB
└────────────┬─────────────┘↓
┌──────────────────────────┐
│     InnoDB 执行引擎       │ ← 执行器调用接口,如 row_search_for_mysql()
├──────────────────────────┤
│ 1. 检查 Buffer Pool       │ ← 内存中是否已有页(缓存)
│ 2. 否 → 读取磁盘页 → 缓存  │
│ 3. 扫描索引(如 B+ 树)    │ ← 聚簇索引/辅助索引
│ 4. 返回数据行             │
└──────────────────────────┘

五、InnoDB 执行引擎模块

模块功能说明
Buffer Pool内存缓存页:索引页、数据页、undo页;优先读取缓存,未命中则从磁盘读入
索引管理器支持聚簇索引(主键)和二级索引(普通索引);B+树结构快速定位
事务管理器支持 ACID,管理 Redo LogUndo Log;控制 MVCC 和锁
锁管理器提供行级锁、意向锁、Gap锁、Next-key锁等
日志管理器Redo Log(恢复),Undo Log(回滚、MVCC),Binlog(复制)
文件管理器管理表空间、页文件、数据页读写;协调磁盘I/O

六、不同操作的执行流程

1. 查询(SELECT)

SELECT * FROM users WHERE id = 1;

流程如下:

  1. 执行器调用 InnoDB;
  2. 查找 Buffer Pool(缓存页)
  3. 若无,磁盘读取页;
  4. 使用聚簇索引/二级索引定位记录;
  5. 返回数据 + 记录一致性读版本(MVCC);

若是 FOR UPDATE 则获取排他锁。

2. 插入(INSERT)

INSERT INTO users (name) VALUES ('Alice');

流程:

  1. 构造记录 → 写 Buffer Pool;
  2. 记录 Undo Log用于回滚);
  3. Redo Logprepare);
  4. 提交时写 Binlog + Redo commit
  5. 后台刷脏页到磁盘。

3. 更新/删除(UPDATE / DELETE)

流程类似插入,区别在于:

  • 扫描行 → 检查可见性(MVCC);
  • 修改时生成 Undo 版本
  • 并在提交前记录 redobinlog
http://www.yayakq.cn/news/89905/

相关文章:

  • 百度网站排名全掉琴童少儿音乐创作网站建设
  • 万维网网站域名续费网站建设成本表
  • 丽水市建设工程招标网站厦门模板建站
  • 网站搭建培训公司使用威联通nas做网站存储
  • 在线做章网站wordpress评论框高度
  • 怎样做下载网站影视手机app制作教程
  • 提供石家庄网站推广个人网站的域名
  • 自适应网站优点缺点建设网站需要做的工作内容
  • 国外设计大师网站网站架构设计招聘
  • 网站域名需要续费吗用jsp sqlserver做的购物网站
  • 保定做网站建设网站页面下载
  • 如何快速提升网站关键词排名wordpress泽七
  • 四川省建设厅官网站西安做网站需要多少钱
  • 云南网站建设天软科技什么网站可以买世界杯
  • 为解析的域名做网站南京建设网页制作
  • 网站ip和pv建站平台和网站建设的区别
  • 怎么做网站推广线下ui视觉设计常用软件是什么
  • 运城市网站建设番禺网站开发
  • 网站seo优化服务58做二手车网站应该怎么推广
  • 专业网站建设出售家电网站首页制作
  • 建站之星登录php 未定义函数wordpress
  • 绿色风格的网站静态网站开发工具有哪些
  • 如何进行网站营销wordpress自动图片保存本地
  • 用npp做网站asp.net搭建网站
  • 深圳网站制作公司报价单淘宝数据分析工具
  • 个人网站怎么做有创意深圳做网站知名排行
  • 电子商务网站设计代码第六感聊城网站建设
  • 网站报错 500免费外域网域名
  • .net 网站开发视频教程制作网站需要学什么软件有哪些内容
  • 营口大石桥网站建设wordpress 4.9.6 下载