Mysql 分表分区
Range(范围)–这种模式允许将数据划分不同范围。例如可以将一个表通过年份划分成若干个分区。
Hash(哈希)–这中模式允许通过对表的一个或多个列的Hash
Key
进行计算,最后通过这个Hash码不同数值对应的数据区域进行分区。例如可以建立一个对表主键进行分区的表。
Key
(键值)-上面Hash模式的一种延伸,这里的Hash
Key
是MySQL系统产生的。
List(预定义列表)–这种模式允许系统通过预定义的列表的值来对数据进行分割。
Composite(复合模式) –以上模式的组合使用
如按照日期查找对应的表名:
var getTableName =
function
() {
var data = {
name
:
'tom'
,
money: 2800.00,
date
:
'201410013059'
};
var tablename =
'account_'
;
var
year
= parseInt(data.
date
.
substring
(0, 4));
if (
year
< 2012) {
tablename += 2011; // account_2011
}
else
if (
year
< 2013) {
tablename += 2012; // account_2012
}
else
if (
year
< 2014) {
tablename += 2013; // account_2013
}
else
if (
year
< 2015) {
tablename += 2014; // account_2014
}
else
{
tablename += 2015; // account_2015
}
return
tablename;
}
3、
利用merge存储引擎来实现分表
CREATE TABLE `account_2011` (`id` int(11) NOT NULL AUTO_INCREMENT ,`name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,`money` float NOT NULL ,`tradeDate` datetime NOT NULLPRIMARY KEY (`id`))ENGINE=MyISAMDEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ciAUTO_INCREMENT=2CHECKSUM=0ROW_FORMAT=DYNAMICDELAY_KEY_WRITE=0;
DEFAULT
CHARACTER
SET
=utf8
COLLATE
=utf8_general_ci
UNION
=(`account_2011`,`account_2012`)
INSERT_METHOD=
LAST
ROW_FORMAT=
DYNAMIC
create
table
range(
id
int
(11),
money
int
(11) unsigned
not
null
,
date
datetime
)partition
by
range(
year
(
date
))(
partition p2007
values
less than (2008),
partition p2008
values
less than (2009),
partition p2009
values
less than (2010)
partition p2010
values
less than maxvalue
);
create
table
list(
a
int
(11),
b
int
(11)
)(partition
by
list (b)
partition p0
values
in
(1,3,5,7,9),
partition p1
values
in
(2,4,6,8,0)
create
table
hash(
a
int
(11),
b datetime
)partition
by
hash (
YEAR
(b)
partitions 4;
(4)key:
create
table
t_key(
a
int
(11),
b datetime)
partition
by
key
(b)
partitions 4;
Mysql 分表分区相关推荐
- mysql —— 分表分区
面对当今大数据存储,设想当mysql中一个表的总记录超过1000W,会出现性能的大幅度下降吗? 答案是肯定的,一个表的总记录超过1000W,在操作系统层面检索也是效率非常低的 解决方案: 目前针对海量 ...
- mysql —— 分表分区(1)
面对当今大数据存储,设想当mysql中一个表的总记录超过1000W,会出现性能的大幅度下降吗? 答案是肯定的,一个表的总记录超过1000W,在操作系统层面检索也是效率非常低的 解决方案: 目前针对海量 ...
- MySQL数据库分表分区
防伪码:当你终于沉默,成熟才刚刚开始. 为什么要分表和分区? 我们的数据库数据越来越大,随之而来的是单个表中数据太多.以至于查询书读变慢,而且 由于表的锁机制导致应用操作也搜到严重影响,出现了数据库性 ...
- mysql 主表存hash和子表的名字_【mysql】mysql分表和表分区详解
为什么要分表和分区? 日常开发中我们经常会遇到大表的情况,所谓的大表是指存储了百万级乃至千万级条记录的表.这样的表过于庞大,导致数据库在查询和插入的时候耗时太长,性能低下,如果涉及联合查询的情况,性能 ...
- 分享:mysql分表,分区的区别和联系
mysql分表,分区的区别和联系 http://my.oschina.net/haorizi/blog/113044
- MySql 分表、分库、分片和分区
MySql 分表.分库.分片和分区 转载:用sharding技术来扩展你的数据库(一)sharding 介绍 转载:MySQL架构方案 - Scale Out & Scale Up. 转载: ...
- mysql 分表和分区_Mysql分表和分区的区别
一,什么是mysql分表,分区 什么是分表,从表面意思上看呢,就是把一张表分成N多个小表,具体请看mysql分表的3种方法 什么是分区,分区呢就是把一张表的数据分成N多个区块,这些区块可以在同一个磁盘 ...
- mysql 分表规则获取表名_mysql分表和表分区详解
为什么要分表和分区? 日常开发中我们经常会遇到大表的情况,所谓的大表是指存储了百万级乃至千万级条记录的表.这样的表过于庞大,导致数据库在查询和插入的时候耗时太长,性能低下,如果涉及联合查询的情况,性能 ...
- mysql 数据表分区与分表介绍
什么是分表? 分表是将一个大表按照一定的规则分解成多张具有独立存储空间的实体表,我们可以称为子表,每个表都对应三个文件,MYD数据文件,MYI索引文件,frm表结构文件.这些子表可以分布在同一块磁盘上 ...
- mysql 分库分表分区总结
Mysql目录结构 一个库一个目录 MyISAM引擎 InnoDB引擎 分库分表分区总结 对于分区分表 都可以进行横向(按表字段分),纵向分(按数据行分),此文暂时值考虑横向分. 对于分库:分库 分区 ...
最新文章
- C++ 3 基本数据类型
- 增强 用文本增强修改SAP标准屏幕中的字段名称 属于元素的文本增强
- Spring基础篇——Spring容器和应用上下文理解
- 前端学习(2056):初识vue.js
- Python 的 requests 库的用法
- Oracle match_recognize
- Error Code : 1064 You have an error in your SQL syntax; check the manual that corresponds to your My
- Acer4745G笔记本蓝牙驱动安装
- c语言智能小车项目的感想,智能小车实训报告
- maven 常用命令
- 大话2正在连接登录服务器,大话西游手游服务器连接失败进不去解决办法
- CURD同事狂刷阿里面试指南(恒山版),直接斩获七个offer
- 交房后,如何办理产权证、土地证?
- 全球与中国汽车检测设备市场现状及未来发展趋势
- CocoaPods出现The dependency `` is not used in any concret错误的解决方法
- 明天老外要上课,先准备一下词汇:)
- linux学习笔记2.0
- tensorflow显存自适应分配(tf.1x和tf2.x)
- 直播源码搭建教程5 分钟完成(直播 + 分流 + 画面水印)
- unit英语读音_式读音【式读音英语头条】- 式读音知识点 - 中企动力
热门文章
- js创建节点删除节点实例
- Cobalt Strike Malleable C2
- jquery和prototype比较,以及冲突解决(转)
- android反加密反加固,[原创]记一次爱加密反调试分析及绕过思路
- CVPR 2021 Pre-Trained Image Processing Transformer
- android 遥控器home键键值,android 中遥控器键值的添加和修改
- keil编译错误:Error:Flash DownLoad failed - “Cortex-M4“
- React组件抽象(一): mixin
- turtle的setheading函数详解
- 502 bad gateway原因、解决方法