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

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 )

相关文章:

  • Qt进阶开发:QSS常用的语法介绍和使用
  • 猜数字游戏:从数学原理到交互体验的完整设计指南
  • [更新完毕]2025五一杯A题五一杯数学建模思路代码文章教学:支路车流量推测问题
  • RuoYi-Vue+WuJie整合傻瓜式教程-解决keepAlive问题
  • 2025五一杯数学建模A题:支路车流量推测问题,思路分析+模型代码
  • 【FreeRTOS-列表和列表项】
  • 机器学习Day15 LightGBM算法
  • 基于机器学习的舆情分析算法研究
  • python如何word转pdf
  • 机器学习实战,天猫双十一销量与中国人寿保费预测,使用多项式回归,梯度下降,EDA数据探索,弹性网络等技术
  • PostgreSQL 数据库下载和安装
  • Ubuntu 安装 Cursor
  • 设计模式简述(十五)观察者模式
  • 【Redis分布式】主从复制
  • 【网络服务器】——回声服务器(echo)
  • Linux 环境下 Mysql 5.7 数据定期备份
  • PCA主成分分析法(最大投影方差,最小重构距离,SVD角度)
  • 生物化学笔记:神经生物学概论06 听觉系统 结构与功能 声强范围的检测(外毛细胞动态调节)
  • 第二章 日志分析-apache日志分析(玄机系列)
  • STM32移植U8G2
  • 国际油价重挫!美股道指连跌三月,啥情况?
  • 北京亦庄启动青年人才创新创业生态示范区
  • 国家医保局副局长颜清辉调任人社部副部长
  • 山西太原小区爆炸事故已造成17人受伤
  • 当老年人加入“行为艺术基础班”
  • 80后共青团云南省委副书记许思思已任迪庆州委副书记