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

MERGE存储引擎(介绍,操作),FEDERATED存储引擎(介绍,操作),不同存储引擎的特性图

目录

MERGE存储引擎(合并)

介绍

创建表

语法

示例

查看.mrg文件

操作

查询结果

示例

重建逻辑表

FEDERATED存储引擎 结盟

介绍

​编辑

应用场景

操作

开启

创建表

对本地表进行数据插入

EXAMPLE存储引擎

不同存储引擎的特性​编辑


MERGE存储引擎(合并)

介绍

也叫MRG_MYISAM引擎,是 MySQL 中的一种特殊存储引擎

  • 主要用于将多个结构完全相同 (所有表中的列都有相同的数据类型和索引信息) 的 MyISAM 表合并为一个逻辑上的表进行查询
  • 这个存储引擎本身并不存储数据,而是作为多个 MyISAM 表的“视图”来操作它们

  • 基础表 -- 底层多个MYISAM是真实存储数据的表
  • 逻辑表 -- 作为逻辑上的统一入口

创建表

语法

需要指定插入哪些表,插入的方式

  • 一般选择最后一个表

示例

创建2个myisam基础表:

  • 创建的文件包括 -- 表字段描述信息 / 表数据 / 表索引

并插入数据:

然后创建merge表(在建表语句中,将要使用的myisam表添加进去)

  • 注意,

查看.mrg文件

  • 包含关联的表名+插入数据的方式


 

操作

查询结果

id是主键,为什么会重复呢?

  • 因为主键是定义在基础表内的,它只能保持内部的不重复
  • 在merge表中id并不作为主键,但是可以被索引 -- 按照查询语句去基础表中索引 ; 唯一键同理
示例

当id作为查询条件时,它会去每一张表中查询:

使用merge不支持全局的主键和唯一性校验

重建逻辑表

如果现在又新增了一个基础表(也就是要将MERGE表重新映射到不同的MyISAM基础表集合),可以有以下解决方法:

  • 删除MERGE表并重新创建 (使用drop table 只会删除MERGE表定义,基础MyISAM表不受影响)
  • 使用 ALTER TABLE 表名 UNION=(...) 修改基础表的集合 -- 当()列表为空时,删除所有基础表

删除重建的效率很高,因为只是修改.MRG文件

FEDERATED存储引擎 结盟

介绍

一种特殊存储引擎

  • 其最大特点是:本地服务器上的表不存储数据,而是将所有的查询操作转发到远程 MySQL 服务器上的表执行
  • 也就是说,它在本地创建一个“代理表”,但实际数据保存在远程服务器

  • 本地环境 -- 当前创建表的一个环境,不存储真实数据,只保存表结构的逻辑表
  • 远程环境 -- 另一台服务器,通过网络连接到本地,远程环境下的表是有真实数据+表结构的

这两张表的表定义相同: 

应用场景

FEDERATED 存储引擎允许访问远程 MySQL 数据库中的数据,能够在不依赖复制或集群技术的情况下,实现跨服务器的数据访问

  • 由于其跨服务器、低耦合的特性,FEDERATED 特别适合用于 轻量级的分布式系统 或 数据集市(Data Mart)环境,在不引入复杂分布式系统的情况下整合多个数据源

可以定义多个 FEDERATED 表,每个表都连接到不同的远程 MySQL 实例,也可以连接同一远程服务器上的不同数据库或表

  • 这种机制确实实现了“轻量级”的分布式访问能力,但它不支持真正的分布式数据库特性(如数据分片、自动故障转移、分布式事务、一致性协议等)
  • 更准确地说,它是一种“代理式”访问远程表的机制,而不是一个分布式数据库架构

 

操作

开启

默认不支持,可以在启动时通过 命令行选项 --federated / 在选项文件中配置 来启用

创建表

首先要保证一个远程服务器上的某表存在:

创建本地表:

  • 主要在于connection字段 -- mysql协议(连接协议)://用户名:密码@主机地址:端口号/远程数据库名/远程表名
  • 与远程服务器通信过程中使用的用户 -- 不建议使用root,而是创建一个专门的用户并授权
  • 密码 -- 不能带有@符号,因为在字符串中@作为密码和主机地址的分隔符
  • 主机地址 -- 根据实际的远程机器,确定ip地址 (必须得是MYSQL服务器)
  • 远程表名 -- 建议与本地表名保持一致

对本地表进行数据插入

创建FEDERATED表后的本地文件:

  • 仅仅只有一个sdi文件
  •  

插入数据:

  • 远程表查询也可以看到数据更新

 

EXAMPLE存储引擎

EXAMPLE存储引擎什么也不做,它的存在目的是为开发人员说明如何开始编写一个新的存储引擎,是MySQL源代码中的一个示例

  • 不支持索引和表分区
  • 当创建一个EXAMPLE表时,不会在磁盘上创建任何文件
  • 表中不能存储任何数据,查询时始终返回一个空结果

不同存储引擎的特性

(note )

http://www.xdnf.cn/news/3497.html

相关文章:

  • Ocelot与.NETcore7.0部署(基于腾讯云)
  • [更新完毕]2025五一杯A题五一杯数学建模思路代码文章教学:支路车流量推测问题
  • Python-pandas-json格式的数据操作(读取数据/写入数据)
  • Playwright MCP 入门实战:自动化测试与 Copilot 集成指南
  • 【阿里云大模型高级工程师ACP习题集】2.8 部署模型
  • linux python3安装
  • 游戏引擎学习第253天:重新启用更多调试界面
  • 开源飞控软件:推动无人机技术进步的引擎
  • C# | 基于C#实现的BDS NMEA-0183数据解析上位机
  • MATLAB 中zerophase函数——零相位响应
  • 【大模型】图像生成:StyleGAN3:生成对抗网络的革命性进化
  • 【dify—8】Chatflow实战——博客文章生成器
  • Arduino程序函数详解与实际案例
  • 【Github仓库】Learn-Vim随笔
  • 动态规划引入
  • [UVM]寄存器模型的镜像值和期望值定义是什么?他们会保持一致吗?
  • 【Linux】线程池和线程补充内容
  • LeetCode —— 94. 二叉树的中序遍历
  • 基于若依RuoYi-Vue3-FastAPI 的 Docker 部署记录
  • 生物化学笔记:神经生物学概论06 听觉系统 结构与功能 声强范围的检测(外毛细胞动态调节)
  • 猜数字游戏:从数学原理到交互体验的完整设计指南
  • 边缘计算革命:大模型轻量化部署全栈实战指南
  • CANopen协议简单介绍和使用
  • 基于静态局部立方体贴图的高效软阴影
  • 先知AIGC超级工场,如何助力企业降本增效?
  • 上位机 日志根据类型显示成不同颜色
  • VS乱码问题
  • 2025年Jetpack Compose集成网络请求库的完整实施方案
  • Dify LLM节点的记忆功能深度探究
  • 滚珠丝杆怎么选型?