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 相关文章推荐
PHP开发中常用的8个小技巧
Aug 27 PHP
浅析PKI加密解密 OpenSSL
Jul 01 PHP
php中的常用魔术方法总结
Aug 02 PHP
PHP程序漏洞产生的原因分析与防范方法说明
Mar 06 PHP
php根据年月获取季度的方法
Mar 31 PHP
PHP简单获取视频预览图的方法
Mar 12 PHP
支付宝接口开发集成支付环境小结
Mar 17 PHP
thinkphp表单上传文件并将文件路径保存到数据库中
Jul 28 PHP
Laravel5.* 打印出执行的sql语句的方法
Jul 24 PHP
PHP+redis实现的悲观锁机制示例
Jun 12 PHP
php实现微信公众号企业转账功能
Oct 01 PHP
laravel框架分组控制器和分组路由实现方法示例
Jan 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程序的php代码
2008/04/07 PHP
基于PHP编程注意事项的小结
2013/04/27 PHP
PHP 输出URL的快捷方式示例代码
2013/09/22 PHP
strpos() 函数判断字符串中是否包含某字符串的方法
2019/01/16 PHP
解决Laravel无法使用COOKIE和SESSION的问题
2019/10/16 PHP
PHP上传图片到数据库并显示的实例代码
2019/12/20 PHP
php设计模式之策略模式实例分析【星际争霸游戏案例】
2020/03/26 PHP
php显示当前文件所在的文件以及文件夹所有文件以树形展开
2013/12/13 Javascript
模拟一个类似百度google的模糊搜索下拉列表
2014/04/15 Javascript
Nodejs进程管理模块forever详解
2014/06/01 NodeJs
jQuery的deferred对象详解
2014/11/12 Javascript
浅谈javascript中的闭包
2015/05/13 Javascript
详解JavaScript时间格式化
2015/12/23 Javascript
HTML Table 空白单元格补全的简单实现
2016/10/13 Javascript
js return返回多个值,通过对象的属性访问方法
2017/02/21 Javascript
JS正则表达式验证账号、手机号、电话和邮箱是否合法
2017/03/08 Javascript
深入理解 JavaScript 中的 JSON
2017/04/06 Javascript
浅谈AngularJS中$http服务的简单用法
2018/05/15 Javascript
微信小程序如何调用json数据接口并解析
2019/06/29 Javascript
JS运算符优先级与表达式示例详解
2020/09/04 Javascript
[09:40]DAC2018 4.5 SOLO赛 MidOne vs Miracle
2018/04/06 DOTA
Python3获取电脑IP、主机名、Mac地址的方法示例
2019/04/11 Python
使用Python制作简单的小程序IP查看器功能
2019/04/16 Python
python基于TCP实现的文件下载器功能案例
2019/12/10 Python
如何基于Python爬取隐秘的角落评论
2020/07/02 Python
Python requests HTTP验证登录实现流程
2020/11/05 Python
Anthropologie英国:美国家喻户晓的休闲服装和家居产品品牌
2018/12/05 全球购物
95%的面试官都会问到的50道Java线程题,附答案
2012/08/03 面试题
自主实习接收函
2014/01/13 职场文书
学生拾金不昧表扬信
2014/01/21 职场文书
公安交警中队队长个人对照检查材料思想汇报
2014/10/05 职场文书
2014年乡镇党建工作总结
2014/11/11 职场文书
关于拾金不昧的感谢信
2015/01/21 职场文书
捐款通知怎么写
2015/04/24 职场文书
大学体育课感想
2015/08/10 职场文书
Python自动操作神器PyAutoGUI的使用教程
2022/06/16 Python