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和网页显示乱码解决方法集锦
Mar 27 PHP
php添加文章时生成静态HTML文章的实现代码
Feb 17 PHP
php数组索引的Key加引号和不加引号的区别
Aug 19 PHP
PHP中exec函数和shell_exec函数的区别
Aug 20 PHP
关于PHP文件的自动运行方法分析
May 13 PHP
php微信高级接口群发 多客服
Jun 23 PHP
PHP面试常用算法(推荐)
Jul 22 PHP
PDO操作MySQL的基础教程(推荐)
Aug 18 PHP
PHP实现redis限制单ip、单用户的访问次数功能示例
Jun 16 PHP
PDO::setAttribute讲解
Jan 29 PHP
vmware linux系统安装最新的php7图解
Apr 14 PHP
Linux系统下安装PHP7.3版本
Jun 26 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/12/30 PHP
php中global和$GLOBALS[]的分析之一
2012/02/02 PHP
将博客园(cnblogs.com)数据导入到wordpress的代码
2013/01/06 PHP
JoshChen_web格式编码UTF8-无BOM的小细节分析
2013/08/16 PHP
使用php方法curl抓取AJAX异步内容思路分析及代码分享
2014/08/25 PHP
在b/s开发中经常用到的javaScript技术
2006/08/23 Javascript
input 输入框内的输入事件详细分析
2010/03/17 Javascript
Jsonp 跨域的原理以及Jquery的解决方案
2010/05/18 Javascript
充分发挥Node.js程序性能的一些方法介绍
2015/06/23 Javascript
实例讲解使用原生JavaScript处理AJAX请求的方法
2016/05/10 Javascript
深入浅析JavaScript中的scrollTop
2016/07/11 Javascript
浅谈JS继承_寄生式继承 &amp; 寄生组合式继承
2016/08/16 Javascript
JavaScript DOM节点操作方法总结
2016/08/23 Javascript
jquery 动态增加删除行的简单实例(推荐)
2016/10/12 Javascript
完美解决mui框架off-canvas侧滑超出部分隐藏无法滚动的问题
2018/01/25 Javascript
vue组件中的数据传递方法
2018/05/14 Javascript
解决循环中setTimeout执行顺序的问题
2018/06/20 Javascript
微信小程序之批量上传并压缩图片的实例代码
2018/07/05 Javascript
JavaScript作用域链实例详解
2019/01/21 Javascript
使用Karma做vue组件单元测试的实现
2020/01/16 Javascript
Vue的Options用法说明
2020/08/14 Javascript
[01:50]2014DOTA2西雅图邀请赛 专访欢乐周宝龙
2014/07/08 DOTA
python中的__init__ 、__new__、__call__小结
2014/04/25 Python
Python实现脚本锁功能(同时只能执行一个脚本)
2017/05/10 Python
老生常谈Python startswith()函数与endswith函数
2017/09/08 Python
Django处理多用户类型的方法介绍
2019/05/18 Python
PyCharm更改字体和界面样式的方法步骤
2019/09/27 Python
tensorflow 限制显存大小的实现
2020/02/03 Python
html5 迷宫游戏(碰撞检测)实例一
2013/07/25 HTML / CSS
英国性感内衣和睡衣品牌:Bluebella
2018/01/26 全球购物
单位委托函范文
2015/01/29 职场文书
2019如何书写演讲稿?
2019/07/01 职场文书
Python实现排序方法常见的四种
2021/07/15 Python
python编程简单几行代码实现视频转换Gif示例
2021/10/05 Python
SpringBoot集成MongoDB实现文件上传的步骤
2022/04/18 MongoDB
MySQL去除密码登录告警的方法
2022/04/20 MySQL