文档章节

表分区 partition

雨落屋檐下
 雨落屋檐下
发布于 2017/08/11 00:34
字数 440
阅读 1
收藏 0

当一张表的数据非常多的时候,比如单个.myd文件都达到10G, 这时,必然读取起来效率降低.

可不可以把表的数据分开在几张表上?

 

1: 从业务角度可以解决. (分表)

比如, 通过id%10 , user0 , user1....user9, 这10张表

根据不同的余数,来插入或查询某张表.

 

2: 通过mysql的分区功能

mysql将会根据指定的规则,把数据放在不同的表文件上.

相当于在文件上,被拆成了小块.

但是,给客户的界面,还是1张表.

 

常用的规则:

根据某列的范围来分区, 也可以某列的散点值来分区.

 

示例: 按列的范围来分区

以用户表为例, uid

uid [1,10)  ---> user partition u0

uid[10, 20) ---> user partition u1

uid [20, MAX] --> user partion u2

 

分区 按range分区

 create table goods (

 id int,

 uname char(10)

 )engine myisam

 partition by range(id) (

 partition p1 values less than (10),

 partition p2 values less than (20),

 partition p3 values less than MAXVALUE

 );

 

按散点值分区

有一张省表

pid 主键

prov 省名

1

北京

2

安徽

...

 

35

西藏

 

user 表,想按省来分区,

uid 主键

pid 省份

uname 用户名

1

1

张北京

15

2

赵安徽

create table user (

uid int,

pid int,

uname 

)engine myisam

partition by list(pid) (

partition bj values in (1),

partition ah values in (2),

partition xb values in (4,5,6)

);

 

注意: 在使用分区的时候,注意,分区的那个列,值不要为NULL 

(如果不小心为NULL,mysql为理解为0,尽量执行之)

 

注 :分区甚至可以按照表达式的返回值,计算所属区. 

但用表达式,不如直接用值来得快. 根据情况而定.

 

比如,用 partition by range (year(regtime)) 可以按注册年份来分区.

© 著作权归作者所有

共有 人打赏支持
雨落屋檐下
粉丝 0
博文 19
码字总数 21043
作品 0
广州
程序员
数据库表分区

一、什么是表分区 表分区是将一大表,根据条件分割成若干个小表。mysql5.1开始支持数据表分区了。 如:某用户表的记录超过了800万条,那么就可以根据入库日期将表分区,也可以根据所在地将表...

yanlijun_java
01/19
0
0
ORACLE PARTITION简介

一、Oracle分区简介 ORACLE的分区是一种处理超大型表、索引等的技术。分区是一种“分而治之”的技术,通过将大表和索引分成可以管理的小块,从而避免了对每个表作为一个大的、单独的对象进行...

zancun
2017/09/08
0
0
centos7-mysql-分区

分区跟分表类似,目的是将一张表分到不通的存储中,这样可以减少单一磁盘IO占用,提高数据库效率 分区主要有两种形式 水平分区 对表的行进行分区, 垂直分区 减少表的宽度, 想使用分区,需要先查看...

动力在于作
2017/03/31
0
0
Oracle 分区表的新增、修改、删除、合并。普通表转分区表方法

一. 分区表理论知识 Oracle提供了分区技术以支持VLDB(Very Large DataBase)。分区表通过对分区列的判断,把分区列不同的记录,放到不同的分区中。分区完全对应用透明。 Oracle的分区表可以包...

sjzmlb
2015/12/23
272
0
oracle表分区二 转

此文从以下几个方面来整理关于分区表的概念及操作: 1.表空间及分区表的概念 2.表分区的具体作用 3.表分区的优缺点 4.表分区的几种类型及操作方法 5.对表分区的维护性操作. (1.) 表空间及分区...

李永china
2016/05/15
21
0

没有更多内容

加载失败,请刷新页面

加载更多

Swift-系统默认UICollectionViewController的基本用法

不用xib创建时,需要重写 override init(collectionViewLayout layout: UICollectionViewLayout){} 在调用时需传 UICollectionViewLayout值,不然就会报错 let layout = UICollectionViewFlow......

west_zll
2分钟前
0
0
Spring Boot 最核心的 3 个注解详解

最近面试一些 Java 开发者,他们其中有些在公司实际用过 Spring Boot, 有些是自己兴趣爱好在业余自己学习过。然而,当我问他们 Spring Boot 最核心的 3 个注解是什么,令我失望的是鲜有人能答...

Java技术栈
3分钟前
0
0
Sqoop 增量导入导出及Job操作示例

增量导入 递增列的增量导入append # 第一次导入[root@node222 ~]# /usr/local/sqoop-1.4.7/bin/sqoop import --connect jdbc:mysql://192.168.0.200:3306/sakila?useSSL=false --table ac......

PeakFang-BOK
9分钟前
0
0
Thread中断的理解

★中断的理解:1)中断可以理解为线程的一个标识位属性;2)表示一个运行中的线程是否被其他线程进行了中断操作 中断好比其他线程向该线程打了个招呼,其他线程通过调用该线程的interrupt()...

karma123
16分钟前
0
0
App store 侵权投诉

App Store Content Dispute 侵权投诉 https://www.apple.com/legal/internet-services/itunes/appstorenotices/#?lang=zh...

壹峰
40分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部