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


Posted in PHP onJuly 29, 2015

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

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

首先创建100张表:

$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

函数如下:

$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表

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数据了。

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

PHP 相关文章推荐
基于mysql的论坛(3)
Oct 09 PHP
一个自定义位数的php多用户计数器代码
Mar 11 PHP
最新的php 文件上传模型,支持多文件上传
Aug 13 PHP
PHP高级OOP技术演示
Aug 27 PHP
php的字符串用法小结
Jun 08 PHP
php代码运行时间查看类代码分享
Aug 06 PHP
php数组函数序列之array_splice() - 在数组任意位置插入元素
Nov 07 PHP
PHP连接MSSQL时nvarchar字段长度被截断为255的解决方法
Dec 25 PHP
PHP动态输出JavaScript代码实例
Feb 12 PHP
Zend Framework分页类用法详解
Mar 22 PHP
PHP中SQL查询语句的id=%d解释(推荐)
Dec 10 PHP
Yii2框架加载css和js文件的方法分析
May 25 PHP
php实现仿写CodeIgniter的购物车类
Jul 29 #PHP
PHP使用逆波兰式计算工资的方法
Jul 29 #PHP
ThinkPHP实现递归无级分类――代码少
Jul 29 #PHP
PHP之正则表达式捕获组与非捕获组(详解)
Jul 29 #PHP
PHP实现的简单缓存类
Jul 29 #PHP
PHP实现简单爬虫的方法
Jul 29 #PHP
php获取网站百度快照日期的方法
Jul 29 #PHP
You might like
php 启动报错如何解决
2014/01/17 PHP
php使用MySQL保存session会话的方法
2015/06/26 PHP
PHP结合jQuery实现找回密码
2015/07/22 PHP
基于jquery的lazy loader插件实现图片的延迟加载[简单使用]
2011/05/07 Javascript
JavaScript实现存储HTML字符串示例
2014/04/21 Javascript
一个JavaScript的求爱小特效
2014/05/09 Javascript
JavaScript中的单引号和双引号报错的解决方法
2014/09/01 Javascript
浅谈JavaScript中的this指针和引用知识
2016/08/05 Javascript
URL的参数中有加号传值变为空格的问题(URL特殊字符)
2016/11/04 Javascript
JavaScript轻松创建级联函数的方法示例
2017/02/10 Javascript
js中小数向上取整数,向下取整数,四舍五入取整数的实现(必看篇)
2017/02/13 Javascript
基于jQuery的表单填充实例
2017/08/22 jQuery
Node.js利用Express实现用户注册登陆功能(推荐)
2020/10/26 Javascript
[00:36]DOTA2上海特级锦标赛 Alliance战队宣传片
2016/03/04 DOTA
在Python中使用PIL模块处理图像的教程
2015/04/29 Python
python引入不同文件夹下的自定义模块方法
2018/10/27 Python
Python3 修改默认环境的方法
2019/02/16 Python
Python基础类继承重写实现原理解析
2020/04/03 Python
关于Python错误重试方法总结
2021/01/03 Python
matplotlib制作雷达图报错ValueError的实现
2021/01/05 Python
Clarks英国官方网站:全球领军鞋履品牌
2016/11/26 全球购物
德国在线购买葡萄酒网站:Geile Weine
2019/09/24 全球购物
车间统计员岗位职责
2014/01/05 职场文书
函授大学生自我鉴定
2014/02/05 职场文书
廉洁自律承诺书
2014/03/27 职场文书
关于安全演讲稿
2014/05/09 职场文书
外贸业务员求职信
2014/06/16 职场文书
财会专业大学生求职信
2014/09/26 职场文书
公司慰问信范文
2015/03/23 职场文书
2015年安全员工作总结范文
2015/04/22 职场文书
2017年寒假少先队活动总结
2016/04/06 职场文书
工作一年自我鉴定
2019/06/20 职场文书
MySQL5.7并行复制原理及实现
2021/06/03 MySQL
Java使用httpRequest+Jsoup爬取红蓝球号码
2021/07/02 Java/Android
oracle数据库去除重复数据
2022/05/20 Oracle
MySQL生成千万测试数据以及遇到的问题
2022/08/05 MySQL