`
like.eagle
  • 浏览: 248836 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

MySQL数据分区中的KEY分区实践

阅读更多

对于RANGE和LIST分区,从网上的一些例子中了解到,可以为每个分区指定相应的数据库服务器,如下所示:

drop database if exists myspider;
create database myspider;
use myspider;
Create table tbl_b(
col_a int,
col_b int,
primary key(col_a)
) engine = Spider
Connection ' table "tbl_a", user "msandbox", password "msandbox" '
partition by range ( col_a ) (
partition pt1 values less than (1000)  comment 'host "rdb1", port "3306"',
partition pt2 values less than (2000)  comment 'host "rdb2", port "3306"',
partition pt3 values less than (MAXVALUE)  comment 'host "rdb3", port "3306"'
);

 

但是对于KEY和HASH分区,似乎并没有这样为每个分区指定数据库服务器的实例,大多的例子如下所示:

CREATE TABLE articles (
id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
title VARCHAR(200),
body TEXT,
FULLTEXT (title,body)
)
PARTITION BY HASH (id)
PARTITIONS 4;

 

或者

 

CREATE TABLE articles (
id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
title VARCHAR(200),
body TEXT,
FULLTEXT (title,body)
)
PARTITION BY KEY (id)
PARTITIONS 4;

 

而且在MySQL四大分区类型中(RANGE、LIST、HASH、KEY),分区键必须是INT类型,或者通过表达式返回INT类型,可以为NULL。唯 一的例外是当分区类型为KEY分区的时候,可以使用其他类型的列作为分区键( BLOB or TEXT 列除外)。

 

因此,今天特意实践了一下KEY分区,需求如下:

①KEY分区的分区类型不是 INT类型;

②为每个分区指定对应的数据库服务器;

 

结果成功,创建满足该需求的代码如下:

DROP TABLE IF EXISTS tkc;
CREATE TABLE tkc (cr CHAR)
ENGINE=SPIDER DEFAULT CHARSET=latin1 CONNECTION=' table "tkc", user "msandbox", password "msandbox" '
PARTITION BY KEY (cr)
PARTITIONS 3
(PARTITION pt1  COMMENT = 'host "127.0.0.1", port "6001"' ENGINE = SPIDER,
 PARTITION pt2 COMMENT = 'host "127.0.0.1", port "6002"' ENGINE = SPIDER,
 PARTITION pt3 COMMENT = 'host "127.0.0.1", port "6003"' ENGINE = SPIDER);

 

或者这样也可以

DROP TABLE IF EXISTS tkc;

CREATE TABLE `tkc` (
  `cr` CHAR(1) DEFAULT NULL
) ENGINE=SPIDER DEFAULT CHARSET=latin1 CONNECTION=' table "tkc", user "msandbox", password "msandbox" '
PARTITION BY KEY (cr)
(PARTITION pt1 COMMENT = 'host "127.0.0.1", port "6001"' ENGINE = SPIDER,
 PARTITION pt2 COMMENT = 'host "127.0.0.1", port "6002"' ENGINE = SPIDER,
 PARTITION pt3 COMMENT = 'host "127.0.0.1", port "6003"' ENGINE = SPIDER)

 

 

分享到:
评论

相关推荐

    详细介绍Mysql5.1分区技术

    详细介绍mysql5.1 分区技术,通过对list range hash key四种分区技术的举例阐述Mysql分区,18.2.1. RANGE分区 18.2.2. LIST分区 ...18.2.4. KEY分区 18.2.5. 子分区 18.2.6. MySQL分区处理NULL值的方式

    Oracle10个分区和Mysql分区区别详解

    MySQL分区常用的是:range、list、hash、key,Oracle10g分区常用的是:range(范围分区)、list(列表分区)、hash(哈希分区)、range-hash(范围—哈希分区)、range-list(列表—复合分区)。下面通过本文详细给...

    mysql通过Navicat分区实操讲解

    mysql分区有利于管理非常大的表,mysql分区一共有四种类型,range分区,list分区, hash分区,key分区,我们通过Navicat 可视化工具来分区 1、打开Navicat 找到指定的数据库,设计表 2、打开设计表选择选项,下面有...

    基于MySQL分区性能的详细介绍

    MySQL支持RANGE,LIST,HASH,KEY分区类型,其中以RANGE最为常用: Range(范围)–这种模式允许将数据划分不同范围。例如可以将一个表通过年份划分成若干个分区。 Hash(哈希)–这中模式允许通过对表的一个或多个...

    MySQL数据库表分区注意事项大全【推荐】

    表分区与数据库分区是不一样的那么碰到表分区使用时我们要注意一些什么事情呢,今天我们来看一篇关于MySQL数据库表分区注意事项的细节。 1、分区列索引约束 若表有primary key或unique key,则分区表的分区列必须...

    MySQL 5.1中文手冊

    2.7. 在其它类Unix系统中安装MySQL 2.8. 使用源码分发版安装MySQL 2.8.1. 源码安装概述 2.8.2. 典型配置选项 2.8.3. 从开发源码树安装 2.8.4. 处理MySQL编译问题 2.8.5. MIT-pthreads注意事项 2.8.6. 在Windows下从...

    MySQL 5.1官方简体中文参考手册

    2.7. 在其它类Unix系统中安装MySQL 2.8. 使用源码分发版安装MySQL 2.8.1. 源码安装概述 2.8.2. 典型配置选项 2.8.3. 从开发源码树安装 2.8.4. 处理MySQL编译问题 2.8.5. MIT-pthreads注意事项 2.8.6. 在Windows下从...

    mysql5.1中文手册

    在其它类Unix系统中安装MySQL 2.8. 使用源码分发版安装MySQL 2.8.1. 源码安装概述 2.8.2. 典型配置选项 2.8.3. 从开发源码树安装 2.8.4. 处理MySQL编译问题 2.8.5. MIT-pthreads注意事项 ...

    Sawyer-zh#study-note#mysql 中的分区1

    把一张表按照某种规则(range/list/hash/key等)分成多个区域(页/文件)保存同一个分区表中的所有分区必须是同一个存储引擎注意:无论哪种分区,要么

    MYSQL中文手册

    2.7. 在其它类Unix系统中安装MySQL 2.8. 使用源码分发版安装MySQL 2.8.1. 源码安装概述 2.8.2. 典型配置选项 2.8.3. 从开发源码树安装 2.8.4. 处理MySQL编译问题 2.8.5. MIT-pthreads注意事项 2.8.6. 在...

    mysql官方中文参考手册

    2.7. 在其它类Unix系统中安装MySQL 2.8. 使用源码分发版安装MySQL 2.8.1. 源码安装概述 2.8.2. 典型配置选项 2.8.3. 从开发源码树安装 2.8.4. 处理MySQL编译问题 2.8.5. MIT-pthreads注意事项 2.8.6. 在Windows下从...

    MySQL 5.1参考手册

    2.7. 在其它类Unix系统中安装MySQL 2.8. 使用源码分发版安装MySQL 2.8.1. 源码安装概述 2.8.2. 典型配置选项 2.8.3. 从开发源码树安装 2.8.4. 处理MySQL编译问题 2.8.5. MIT-pthreads注意事项 2.8.6. 在Windows下从...

    MySQL 5.1参考手册中文版

    2.7. 在其它类Unix系统中安装MySQL 2.8. 使用源码分发版安装MySQL 2.8.1. 源码安装概述 2.8.2. 典型配置选项 2.8.3. 从开发源码树安装 2.8.4. 处理MySQL编译问题 2.8.5. MIT-pthreads注意事项 2.8.6. 在...

    MySQL 5.1参考手册 (中文版)

    2.7. 在其它类Unix系统中安装MySQL 2.8. 使用源码分发版安装MySQL 2.8.1. 源码安装概述 2.8.2. 典型配置选项 2.8.3. 从开发源码树安装 2.8.4. 处理MySQL编译问题 2.8.5. MIT-pthreads注意事项 2.8.6. 在Windows下从...

    169集全新MySQL课程 MySQL技能全面探索 MySQL核心特训教程 MySQL零基础实战班视频

    ├─13、课程:MySQL调优入门.6、水平分区.mp4 ├─13、课程:MySQL调优入门.7、架构上的调整SCALE.mp4 ├─14、课程:基于RDS的维度数据模型.10、案例分析(三).mp4 ├─14、课程:基于RDS的维度数据模型.11、物化...

    mysql-partitioner

    Mysql ::分区程序MySQL分区管理工具安装将此行添加到您的应用程序的Gemfile中: gem 'mysql-partitioner' 然后执行: $ bundle或将其自己安装为: $ gem install mysql-partitioner用法Usage: mysql-partitioner ...

    第六章:MySQL高级进阶-分区表

    mysql支持的分析类型包括Range,List ,Hash,Key, 其中Range最常用。 #4、示例代码如下: create table user_range( id int not null auto_increment, name varchar(30), age int , birthday date, province int, ...

    MySQL学习记录之KEY分区引发的血案

    image_no表示每个文件的编号,每个文件在业务系统中会生成若干个文件,每个文件的唯一ID就是字段id: 业务表tb_image的一些情况如下: 根据image_no查询和根据id查询; 存量数据2kw; 日增长4w左右; 日查询量...

    MySQL5.1参考手册官方简体中文版

    2.7. 在其它类Unix系统中安装MySQL 2.8. 使用源码分发版安装MySQL 2.8.1. 源码安装概述 2.8.2. 典型配置选项 2.8.3. 从开发源码树安装 2.8.4. 处理MySQL编译问题 2.8.5. MIT-pthreads注意事项 2.8.6. 在Windows下从...

Global site tag (gtag.js) - Google Analytics