美文网首页
mysql merge 分区

mysql merge 分区

作者: 3c9a691b4944 | 来源:发表于2017-11-20 14:50 被阅读30次

原文链接:https://www.bestqliang.com/#/article/5

1.测试数据

1.usera 插入500w数据
2.userb 插入500w数据
3.userall (主表)
    usert1 (子表) 插入250w数据
    usert2 (子表) 插入250w数据
4.userall2 (主表)
    usert3 (子表) 插入250w数据
    usert4 (子表) 插入250w数据

  • 建表语句
CREATE TABLE usertb(
    id serial,
    uname  varchar(20) ,
    ucreatetime  datetime  ,
    age int(11))
ENGINE=MYISAM
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
AUTO_INCREMENT=1
ROW_FORMAT=COMPACT;
CREATE TABLE usertall(
    id serial,
    uname  varchar(20) ,
    ucreatetime  datetime  ,
    age int(11))
ENGINE=MERGE union(usert1,usert2) insert_method=last
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
AUTO_INCREMENT=1
ROW_FORMAT=COMPACT;
  • 使用存储过程插入测试数据
delimiter $$
SET AUTOCOMMIT = 0$$
create  procedure test1()
begin
declare v_cnt decimal (10)  default 0 ;
dd:loop
        insert into userta values
        (null,'用户1',now(),20),
        (null,'用户2',now(),20),
        (null,'用户3',now(),20),
        (null,'用户4',now(),20),
        (null,'用户5',now(),20),
        (null,'用户6',now(),20),
        (null,'用户7',now(),20),
        (null,'用户8',now(),20),
        (null,'用户9',now(),20),
        (null,'用户0',now(),20);
        commit;
        set v_cnt = v_cnt+10 ;
            if  v_cnt = 5000000 then leave dd;
            end if;
        end loop dd ;
end;$$
delimiter;
  • 调用存储过程
call test1;
  • 测试查询时间
select * from userta;       --3.63s

注意点

1.分表必须保证主表和子表表结构一致,否则报错
Error Code : 1168 Unable to open underlying table which is differently defined or of non-MyISAM type or doesn't exist

相关文章

  • Mysql分区

    介绍 Mysql5.5只支持水平分区,还不支持垂直分区。MySQL分区不能与使用 MERGE,CSV或 FEDER...

  • mysql merge 分区

    原文链接:https://www.bestqliang.com/#/article/5 1.测试数据 1.user...

  • Mysql 数据库如何分区、分表?

    分表可以通过三种方式:Mysql 集群、自定义规则和merge 存储引擎。分区有四类:RANGE 分区:基于属于一...

  • Mysql数据库如何分区、分表

    分表可以通过三种方式:Mysql集群、自定义规则和merge存储引擎。分区有四类:RANGE 分区:基于属于一个给...

  • MySQL分区表

    确认mysql是否支持分区表 mysql分区表的特点 创建mysql数据表为hash表 常用mysql分区的类型 ...

  • mysql分库分表

    课程内容 mysql分区 水平切分 垂直切分 1. mysql分区 1.1 什么是分区? mysql数据库中的数据...

  • mysql表分区

    mysql表分区主要分为RANGE分区,LIST分区,HASH分区,LINEAR HASH分区,KEY分区 目前,...

  • 对MySQL交换分区的实践

    前言 在介绍交换分区之前,我们先了解一下 mysql 分区。 数据库的分区有两种:水平分区和垂直分区。而MySQL...

  • mysql分区

    mysql分区 Mysql支持水平分区,并不支持垂直分区;水平分区:指将同一表中不同行的记录分配到不同的物理文件中...

  • [概念]Hive 基础之:分区、桶、Sort Merge Buc

    Hive 基础之:分区、桶、Sort Merge Bucket Join - 远方的专栏 - 博客频道 - CSD...

网友评论

      本文标题:mysql merge 分区

      本文链接:https://www.haomeiwen.com/subject/rxyvvxtx.html