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 相关文章推荐
其他功能
Oct 09 PHP
php查看session内容的函数
Aug 27 PHP
通过PHP修改Linux或Unix口令的方法分享
Jan 30 PHP
PHP优于Node.js的五大理由分享
Sep 15 PHP
使用swoole扩展php websocket示例
Feb 13 PHP
php不写闭合标签的好处
Mar 04 PHP
ThinkPHP3.1新特性之查询条件预处理简介
Jun 19 PHP
Yii获取当前url和域名的方法
Jun 08 PHP
PHP实现带重试功能的curl连接示例
Jul 28 PHP
PHP7常量数组用法分析
Sep 26 PHP
PHP数据源架构模式之表入口模式实例分析
Jan 23 PHP
php中数组最简单的使用方法
Dec 27 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中读写文件实现代码
2011/10/20 PHP
基于magic_quotes_gpc与magic_quotes_runtime的区别与使用介绍
2013/04/22 PHP
curl和libcurl的区别简介
2015/07/01 PHP
使用Huagepage和PGO来提升PHP7的执行性能
2015/11/30 PHP
学习php设计模式 php实现备忘录模式(Memento)
2015/12/09 PHP
PHP.vs.JAVA
2016/04/29 PHP
Yii2前后台分离及migrate使用(七)
2016/05/04 PHP
Zend Framework分发器用法示例
2016/12/11 PHP
动态获取复选框checkbox选中个数的jquery代码
2013/06/25 Javascript
JS比较2个日期间隔的示例代码
2014/04/15 Javascript
JavaScript实现的一个倒计时的类
2015/03/12 Javascript
JS实现简易图片轮播效果的方法
2015/03/25 Javascript
bootstrap datepicker 与bootstrapValidator同时使用时选择日期后无法正常触发校验的解决思路
2016/09/28 Javascript
使用store来优化React组件的方法
2017/10/23 Javascript
原生js封装的ajax方法示例
2018/08/02 Javascript
layui中table表头样式修改方法
2018/08/15 Javascript
基于AngularJS拖拽插件ngDraggable.js实现拖拽排序功能
2019/04/02 Javascript
基于jquery ajax的多文件上传进度条过程解析
2019/09/11 jQuery
微信小程序自定义菜单切换栏tabbar组件代码实例
2019/12/30 Javascript
微信小程序开发数据缓存基础知识辨析及运用实例详解
2020/11/06 Javascript
python实现上传样本到virustotal并查询扫描信息的方法
2014/10/05 Python
Python查找函数f(x)=0根的解决方法
2015/05/07 Python
Python中struct模块对字节流/二进制流的操作教程
2017/01/21 Python
Python实现解析Bit Torrent种子文件内容的方法
2017/08/29 Python
influx+grafana自定义python采集数据和一些坑的总结
2018/09/17 Python
Python使用字典的嵌套功能详解
2019/02/27 Python
css3学习系列之移动属性详解
2017/07/04 HTML / CSS
如何从一个文件档案的尾端新增记录
2016/12/02 面试题
女大学生毕业找工作的自我评价
2013/10/03 职场文书
大学生毕业自我鉴定
2013/11/06 职场文书
大学生创业计划书的范文
2014/01/07 职场文书
网络编辑求职信
2014/04/30 职场文书
社区清明节活动总结
2014/07/04 职场文书
服务员岗位职责范本
2015/04/09 职场文书
特种设备安全管理制度
2015/08/06 职场文书
人事行政部各岗位职责说明书!
2019/07/15 职场文书