文档章节

1亿条数据如何分表100张到Mysql数据库中(PHP)

zyt_1978
 zyt_1978
发布于 2016/07/06 20:03
字数 384
阅读 24
收藏 4

这篇文章主要介绍了当数据量猛增的时候如何把一亿条数据分表100张到Mysql数据库中,需要的朋友可以参考下

下面通过创建100张表来演示下1亿条数据的分表过程,具体请看下文代码。

当数据量猛增的时候,大家都会选择库表散列等等方式去优化数据读写速度。笔者做了一个简单的尝试,1亿条数据,分100张表。具体实现过程如下:

首先创建100张表:

?

1

2

3

4

5

6

7

8

9

10

$i=0;

while($i<=99){

echo "$newNumber \r\n";

$sql="CREATE TABLE `code_".$i."` (

`full_code` char(10) NOT NULL,

`create_time` int(10) unsigned NOT NULL,

PRIMARY KEY (`full_code`),

) ENGINE=MyISAM DEFAULT CHARSET=utf8";

mysql_query($sql);

$i++;

下面说一下我的分表规则,full_code作为主键,我们对full_code做hash

函数如下:

?

1

2

3

4

5

6

7

$table_name=get_hash_table('code',$full_code);

function get_hash_table($table,$code,$s=100){

$hash = sprintf("%u", crc32($code));

echo $hash;

$hash1 = intval(fmod($hash, $s));

return $table."_".$hash1;

}

这样插入数据前通过get_hash_table获取数据存放的表名。

最后我们使用merge存储引擎来实现一张完整的code表

?

1

2

3

4

5

CREATE TABLE IF NOT EXISTS `code` (

`full_code` char(10) NOT NULL,

`create_time` int(10) unsigned NOT NULL,

INDEX(full_code)

) TYPE=MERGE UNION=(code_0,code_1,code_2.......) INSERT_METHOD=LAST ;

这样我们通过select * from code就可以得到所有的full_code数据了。

以上介绍就是本文的全部内容,希望对大家有所帮助。

本文转载自:http://www.jb51.net/article/70265.htm

共有 人打赏支持
zyt_1978
粉丝 8
博文 166
码字总数 21058
作品 0
程序员
私信 提问
每天增加4亿条数据,每条数据200字节,要快速插入数据和快速查询,数据要保持一年

每天增加4亿条数据,每条数据200字节,要快速插入数据和快速查询,数据要保持一年,存储容量不需要考虑。 基于上次抛出该问题后得到大家很多良好的建议,我整理了大家的讨论,结合需求,我尝...

单车架构师
2013/07/22
731
3
mysql分表与分区表

一,什么是mysql分表,分区 什么是分表,从表面意思上看呢,就是把一张表分成N多个小表,具体请看mysql分表的3种方法 什么是分区,分区呢就是把一张表的数据分成N多个区块,这些区块可以在同...

JasonO
2016/01/27
16
0
MySQL分表的3种方法

MySQL分表的3种方法 标签:Mysql 一,先说一下为什么要分表 当一张的数据达到几百万时,你查询一次所花的时间会变多,如果有联合查询的话,我想有可能会死在那儿了。分表的目的就在于此,减小...

Lunaqi
2017/12/27
0
0
【干货】数据库分库分表基础和实践

数据库架构的演变 在业务数据量比较少的时代,我们使用单机数据库就能满足业务使用,随着业务请求量越来越多,数据库中的数据量快速增加,这时单机数据库已经不能满足业务的性能要求,数据库...

中间件小哥
2018/08/31
0
0
干货:数据库分库分表基础和实践

数据库架构的演变 在业务数据量比较少的时代,我们使用单机数据库就能满足业务使用,随着业务请求量越来越多,数据库中的数据量快速增加,这时单机数据库已经不能满足业务的性能要求,数据库...

中间件小哥
2018/08/31
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周三乱弹 —— 风扇写着先生请自爱

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @蚂蚁哈哈哈 :分享陈奕迅的单曲《落花流水》 《落花流水》- 陈奕迅 手机党少年们想听歌,请使劲儿戳(这里) @车谷 :我发现每天上班都好困 ...

小小编辑
28分钟前
2
0
centos7重置密码、单用户模式、救援模式、ls命令、chmod命令

在工作当中如果我们错误的配置了文件使服务器不能正常启动或者忘记密码不能登录系统,如何解决这些问题呢?重装系统是可以实现的,但是往往不能轻易重装系统的,下面用忘记密码作为例子讲解如...

李超小牛子
今天
3
0
Python如何开发桌面应用程序?Python基础教程,第十三讲,图形界面

当使用桌面应用程序的时候,有没有那么一瞬间,想学习一下桌面应用程序开发?行业内专业的桌面应用程序开发一般是C++,C#来做,Java开发的也有,但是比较少。本节课会介绍Python的GUI(图形用...

程序员补给栈
今天
6
0
kafka在的使用

一、基本概念 介绍 Kafka是一个分布式的、可分区的、可复制的消息系统。它提供了普通消息系统的功能,但具有自己独特的设计。 这个独特的设计是什么样的呢? 首先让我们看几个基本的消息系统...

狼王黄师傅
今天
3
0
Android JNI总结

0x01 JNI介绍 JNI是Java Native Interface的缩写,JNI不是Android专有的东西,它是从Java继承而来,但是在Android中,JNI的作用和重要性大大增强。 JNI在Android中起着连接Java和C/C++层的作...

天王盖地虎626
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部