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数据库类
May 27 PHP
php 空格,换行,跳格使用说明
Dec 18 PHP
php数组函数序列之array_values() 获取数组元素值的函数与方法
Oct 30 PHP
解析thinkphp基本配置 convention.php
Jun 18 PHP
DOM基础及php读取xml内容操作的方法
Jan 23 PHP
php的crc32函数使用时需要注意的问题(不然就是坑)
Apr 21 PHP
PHP中Enum(枚举)用法实例详解
Dec 07 PHP
[原创]PHPCMS遭遇会员投稿审核无效的解决方法
Jan 11 PHP
在Mac OS下搭建LNMP开发环境的步骤详解
Mar 10 PHP
php读取XML的常见方法实例总结
Apr 25 PHP
PHP开启目录引索+fancyindex漂亮目录浏览带搜索功能
Sep 23 PHP
详解Laravel框架的依赖注入功能
May 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/07/17 PHP
php删除数组元素示例分享
2014/02/17 PHP
PHP操作mysql数据库分表的方法
2016/06/09 PHP
PHP生成图像验证码的方法小结(2种方法)
2016/07/18 PHP
Android AsyncTack 异步任务实例详解
2016/11/02 PHP
laravel邮件发送的实现代码示例
2020/01/31 PHP
JavaScript 对象链式操作测试代码
2010/04/25 Javascript
jquery 滚动条事件简单实例
2013/07/12 Javascript
js用正则表达式来验证表单(比较齐全的资源)
2013/11/17 Javascript
javascript实现节点(div)名称编辑
2014/12/17 Javascript
JavaScript中的object转换函数toString()与valueOf()介绍
2014/12/31 Javascript
javascript中callee与caller的区别分析
2015/04/20 Javascript
jQuery实现动态添加和删除一个div
2015/08/12 Javascript
JS中的==运算: [''] == false —&gt;true
2016/07/24 Javascript
JavaScript和jQuery获取input框的绝对位置实现方法
2016/10/13 Javascript
jQuery实现立体式数字滚动条增加效果
2016/12/21 Javascript
Bootstrap实现的标签页内容切换显示效果示例
2017/05/25 Javascript
nodeJS(express4.x)+vue(vue-cli)构建前后端分离实例(带跨域)
2017/07/05 NodeJs
VUE2 前端实现 静态二级省市联动选择select的示例
2018/02/09 Javascript
纯JS实现可用于页码更换的飞页特效示例
2018/05/21 Javascript
JavaScript面向对象程序设计中对象的定义和继承详解
2019/07/29 Javascript
vue cli3 调用百度翻译API翻译页面的实现示例
2019/09/13 Javascript
详解Vue中Axios封装API接口的思路及方法
2020/10/10 Javascript
python2.7的编码问题与解决方法
2016/10/04 Python
用 Python 爬了爬自己的微信朋友(实例讲解)
2017/08/25 Python
Python内置模块ConfigParser实现配置读写功能的方法
2018/02/12 Python
Python字典的核心底层原理讲解
2019/01/24 Python
解决Python 使用h5py加载文件,看不到keys()的问题
2019/02/08 Python
python实现猜单词游戏
2020/05/22 Python
100%法国制造的游戏和玩具:Les Jouets Français
2021/03/02 全球购物
旅游与酒店管理的自我评价分享
2013/11/03 职场文书
优秀的计算机专业求职信范文
2013/12/27 职场文书
幼儿园教师奖惩制度
2014/02/01 职场文书
会计出纳岗位职责
2015/03/31 职场文书
八月迷情观后感
2015/06/11 职场文书
观看安全警示教育片心得体会
2016/01/15 职场文书