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中使用Oracle数据库(1)
Oct 09 PHP
php基础教程 php内置函数实例教程
Aug 21 PHP
php删除左端与右端空格的方法
Nov 29 PHP
php使用wordwrap格式化文本段落的方法
Mar 17 PHP
php数字每三位加逗号的功能函数
Oct 22 PHP
Yii使用技巧大汇总
Dec 29 PHP
PHP的Yii框架中YiiBase入口类的扩展写法示例
Mar 17 PHP
Zend Framework实现多服务器共享SESSION数据的方法
Mar 22 PHP
可兼容php5与php7的cURL文件上传功能实例分析
May 11 PHP
php JWT在web端中的使用方法教程
Sep 06 PHP
基于PHP实现微信小程序客服消息功能
Aug 12 PHP
利用PHP内置SERVER开启web服务(本地开发使用)
Mar 09 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
非常不错的MySQL优化的8条经验
2008/03/24 PHP
PHP中SESSION使用中的一点经验总结
2012/03/30 PHP
Laravel4中的Validator验证扩展用法详解
2016/07/26 PHP
php+mysql查询实现无限下级分类树输出示例
2016/10/03 PHP
RSA实现JS前端加密与PHP后端解密功能示例
2019/08/05 PHP
PHP实现的文件浏览器功能简单示例
2019/09/12 PHP
jquery+CSS3实现淘宝移动网页菜单效果
2015/08/31 Javascript
jQuery网页右侧广告跟随滚动代码分享
2020/04/20 Javascript
JavaScript使用DeviceOne开发实战(二) 生成调试安装包
2015/12/01 Javascript
javascript基础知识
2016/06/07 Javascript
概述jQuery的元素筛选
2016/11/23 Javascript
三种方式实现瀑布流布局
2017/02/10 Javascript
Vue.use源码分析
2017/04/22 Javascript
vue.js学习之vue-cli定制脚手架详解
2017/07/02 Javascript
AngularJS与后端php的数据交互方法
2018/08/13 Javascript
vue实现打印功能的两种方法
2018/09/07 Javascript
javascript设计模式 ? 迭代器模式原理与用法实例分析
2020/04/17 Javascript
Vue实现腾讯云点播视频上传功能的实现代码
2020/08/17 Javascript
python的构建工具setup.py的方法使用示例
2017/10/23 Python
简单谈谈Python的pycurl模块
2018/04/07 Python
django的登录注册系统的示例代码
2018/05/14 Python
Python基于pandas实现json格式转换成dataframe的方法
2018/06/22 Python
PyQt打开保存对话框的方法和使用详解
2019/02/27 Python
Python数据可视化实现正态分布(高斯分布)
2019/08/21 Python
Python中six模块基础用法
2019/12/08 Python
python下对hsv颜色空间进行量化操作
2020/06/04 Python
基于tf.shape(tensor)和tensor.shape()的区别说明
2020/06/30 Python
Django限制API访问频率常用方法解析
2020/10/12 Python
创业计划书模版
2014/02/05 职场文书
秋季运动会广播稿大全
2014/02/17 职场文书
《日月潭》教学反思
2014/02/28 职场文书
音乐教育感言
2014/03/05 职场文书
医院党的群众路线教育实践活动学习心得体会
2014/10/30 职场文书
介绍信的写法
2015/01/31 职场文书
2015年南京大屠杀纪念日活动总结
2015/03/24 职场文书
2015年暑期实践报告范文
2015/07/13 职场文书