返回顶部
首页 > 资讯 > 数据库 >MySQL Merge引擎实现分表
  • 716
分享到

MySQL Merge引擎实现分表

2024-04-02 19:04:59 716人浏览 八月长安
摘要

Merge引擎是一组MyISAM表的组合,组合的分表结构必须完全相同,Merge表本身没有数据,对Merge表的操作实际上都是对子表的操作,只是对APP来说是透明的,在插入的时候默认是插入到最后一张表上,也

Merge引擎是一组MyISAM表的组合,组合的分表结构必须完全相同,Merge表本身没有数据,对Merge表的操作实际上都是对子表的操作,只是对APP来说是透明的,在插入的时候默认是插入到最后一张表上,也可以指定插入到第一张表上,Merger表实际上只是多个子表的一个外壳,对它进行删除,不影响实际存储的数据。

创建子表user1

CREATE TABLE `user1` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(100) CHARACTER SET latin1 DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;

创建子表user2

CREATE TABLE `user2` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(100) CHARACTER SET latin1 DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;

创建Merge表alluser

CREATE TABLE `alluser` (
  `id` int(11) NOT NULL,
  `name` varchar(100) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MRG_MyISAM DEFAULT CHARSET=latin1 INSERT_METHOD=LAST UNION=(`user1`,`user2`);

现在对alluser进行插入数据

MySQL Merge引擎实现分表MySQL Merge引擎实现分表

然后查看user2表的数据发现已经插入进去

MySQL Merge引擎实现分表

下一步对子表分表进行插入操作,然后查看alluser表

MySQL Merge引擎实现分表

MySQL Merge引擎实现分表

MySQL Merge引擎实现分表

发现对子表的插入操作最后都会映射到alluser表中,从一定意义上实现了分表,但是也有局限性,就是数据分布不均匀,因为插入的时候不能自定义规则,只能插入创建时指定的子表,还有就没有约束条件的检查,例如在三张表中都设定id为主键,我们在user2中插入一条user1中已经存在的数据,但是alluser表并不报错且成功插入

MySQL Merge引擎实现分表

MySQL Merge引擎实现分表

由于这些原因,Merge引擎实现的分表在实际应用中并不多


您可能感兴趣的文档:

--结束END--

本文标题: MySQL Merge引擎实现分表

本文链接: https://lsjlt.com/news/52470.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • MySQL Merge引擎实现分表
    Merge引擎是一组MyISAM表的组合,组合的分表结构必须完全相同,Merge表本身没有数据,对Merge表的操作实际上都是对子表的操作,只是对APP来说是透明的,在插入的时候默认是插入到最后一张表上,也...
    99+
    2024-04-02
  • Mysql中MERGE存储引擎是什么
    这篇文章给大家分享的是有关Mysql中MERGE存储引擎是什么的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。MERGE 存储引擎把一组 MyISAM 数据表当做一个逻辑单元来对待...
    99+
    2024-04-02
  • Mysql中如何使用MERGE存储引擎
    本篇文章为大家展示了Mysql中如何使用MERGE存储引擎,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。MERGE 存储引擎把一组 MyISAM 数据表当做一个逻辑...
    99+
    2024-04-02
  • MySQL使用MRG_MyISAM(MERGE)实现分表后查询的示例
    数据库大数据量优化是一门很大的学问,也是做为一名开发者需要掌握的专业技能。 MySQL分表方式分为垂直分表和水平分表,这两种分表形式都比较简单,简单理解垂直分表指的是:表的记录并不多,但是字段却很长,表占用空间很大,...
    99+
    2022-05-21
    MySQL 分表后查询 MySQL MRG_MyISAM MySQL MERGE
  • MySQL存储引擎中的索引分析
    本篇内容主要讲解“MySQL存储引擎中的索引分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL存储引擎中的索引分析”吧!我们知道不同的存储引擎文件是不...
    99+
    2024-04-02
  • mysql事务与存储引擎实例分析
    这篇文章主要介绍了mysql事务与存储引擎实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇mysql事务与存储引擎实例分析文章都会有所收获,下面我们一起来看看吧。一、MySQL事务1、事务的概念(1)事务...
    99+
    2023-06-30
  • MySQL 优化 index merge引起的死锁分析
    目录背景死锁日志表结构执行计划为什么会用 index_merge(索引合并)解决方案一、从代码层面二、从MySQL层面背景 生产环境出现死锁流水,通过查看死锁日志,看到造成死锁的是两...
    99+
    2024-04-02
  • MySQL 常用引擎总结分享
    目录1.InnoDB1.1 优缺点分析2.MyISAM2.1 优缺点分析3.MEMORY3.1 优缺点分析4.查看和设置存储引擎4.1 查看存储引擎4.2 设置存储引擎总结前言: M...
    99+
    2024-04-02
  • MapReduce引擎如何实现
    今天就跟大家聊聊有关MapReduce引擎如何实现,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。   MapReduce引擎怎么实现  使用例子见下...
    99+
    2024-04-02
  • 利用MySQL之federated引擎实现DBLink功能
    有时候我们需要跨库join查询,但是配置多数据源成本又太高,Oracle提供了DBLink功能,MySQL中也有类似的实现:federated-engine。 MySQL中使用federated引擎的表能够映射远程数据库的表,本...
    99+
    2014-12-02
    利用MySQL之federated引擎实现DBLink功能
  • MySQL MyISAM默认存储引擎实现原理
    默认MyISAM的表会在磁盘中产生3个文件:.frm(表结构文件)、.MYD(数据文件)、.MYI(索引文件)   可以在创建的时候指定数据文件和索引文件的存储位置,只有MyISAM表支持:     DATA ...
    99+
    2022-05-28
    My ISAM 存储 引擎 MySQL
  • MySQL中怎么实现一个搜索引擎
    本篇文章为大家展示了MySQL中怎么实现一个搜索引擎,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。前言 只有Innodb和myisam存储引擎能用全文索引...
    99+
    2024-04-02
  • MySQL 存储引擎 - InnoDB 实现原理介绍
    存储结构   内存结构 内存结构主要包括 Buffer Pool、Change Buffer、Adaptive Hash Index和 Log Buffer 四大组件 Buffer Pool 缓冲池,简称BP。BP以 Page 页为单位,...
    99+
    2023-10-04
    mysql 数据库
  • MySQL MyISAM引擎和InnoDB引擎对于单表大小限制的总结
    MyISAM引擎: 默认情况下,MySQL创建的MyISAM表允许的最大尺寸为4GB。你可以使用SHOW TABLE STATUS语句或myisamchk -dv tbl_name检查表的最大尺寸。&nbs...
    99+
    2024-04-02
  • mysql怎么查看表的储存引擎
    1、查看mysql提供的引擎。MariaDB [(none)]> show engines; +--------------------+---------+------...
    99+
    2024-04-02
  • mysql关于memory引擎的表的总结
    参见官方文档https://dev.mysql.com/doc/refman/5.7/en/memory-storage-engine.html 总结 1、memory引擎表数据只存...
    99+
    2024-04-02
  • mysql 转换表的存储引擎脚本
    vi convert_tbale_engine.sh #!/bin/bash DB=test USER=root PASSWORD=123456 HOST=192.168.1.10 MYSQL_BIN=/u...
    99+
    2024-04-02
  • mysql如何查看表的存储引擎
    可以使用以下语句来查看MySQL表的存储引擎:```sqlSHOW TABLE STATUS LIKE 'table_name';`...
    99+
    2023-08-31
    mysql
  • MySQL改变表的存储引擎方法
    改变MySQL表的存储引擎方法 1、最简单的方法是使用alter table语句,例如 alter table tablename ENGINE = InnoDB; 上述方法可以适用于任何存储引擎的...
    99+
    2023-09-08
    mysql 数据库 sql
  • 如何更改MySQL表的存储引擎?
    MySQL ALTER TABLE 语句可以更改表的存储引擎,如下 -mysql> ALTER TABLE Student ENGINE = 'InnoDB'; Query OK, 0 rows affected (0...
    99+
    2023-10-22
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作