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面向对象全攻略 (五) 封装性
Sep 30 PHP
php文章内容分页并生成相应的htm静态页面代码
Jun 07 PHP
PHP目录函数实现创建、读取目录教程实例
Jan 13 PHP
rrmdir php中递归删除目录及目录下的文件
May 15 PHP
PHP原生模板引擎 最简单的模板引擎
Apr 25 PHP
zend framework文件上传功能实例代码
Dec 25 PHP
php根据日期判断星座的函数分享
Feb 13 PHP
PHP实现动态柱状图改进版
Mar 30 PHP
浅析PHP关键词替换的类(避免重复替换,保留与还原原始链接)
Sep 22 PHP
PHP中功能强大却很少使用的函数实例小结
Nov 10 PHP
php使用curl伪造浏览器访问操作示例
Sep 30 PHP
PHP实现图片防盗链破解操作示例【解决图片防盗链问题/反向代理】
May 29 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操作MongoDB时的整数问题及对策说明
2011/05/02 PHP
PHP的array_diff()函数在处理大数组时的效率问题
2011/11/27 PHP
PHP处理excel cvs表格的方法实例介绍
2013/05/13 PHP
php解析html类库simple_html_dom(详细介绍)
2013/07/05 PHP
Laravel 5框架学习之环境与配置
2015/04/08 PHP
Thinkphp5 自定义上传文件名的实现方法
2019/07/23 PHP
PHP PDO和消息队列的个人理解与应用实例分析
2019/11/25 PHP
Yii框架组件的事件机制原理与用法分析
2020/04/07 PHP
Package.js  现代化的JavaScript项目make工具
2012/05/23 Javascript
JS实现div内部的文字或图片自动循环滚动代码
2013/04/19 Javascript
Mac地址验证的javascript代码
2013/11/09 Javascript
JavaScript lastIndexOf方法入门实例(计算指定字符在字符串中最后一次出现的位置)
2014/10/17 Javascript
javaScript如何跳出多重循环break、continue
2016/09/01 Javascript
Html5 js实现手风琴效果
2020/04/17 Javascript
AngularJS  ng-repeat遍历输出的用法
2017/06/19 Javascript
jQuery+ajax实现动态添加表格tr td功能示例
2018/04/23 jQuery
JavaScript创建对象方法实例小结
2018/09/03 Javascript
解决vue中使用proxy配置不同端口和ip接口问题
2019/08/14 Javascript
jquery中attr、prop、data区别与用法分析
2019/09/25 jQuery
js 计算月/周的第一天和最后一天代码
2020/02/01 Javascript
python持久性管理pickle模块详细介绍
2015/02/18 Python
一个基于flask的web应用诞生 记录用户账户登录状态(6)
2017/04/11 Python
Python实现线程状态监测简单示例
2018/03/28 Python
对python插入数据库和生成插入sql的示例讲解
2018/11/14 Python
python实现最大子序和(分治+动态规划)
2019/07/05 Python
Python unittest装饰器实现原理及代码
2020/09/08 Python
django中cookiecutter的使用教程
2020/12/03 Python
python爬虫利用代理池更换IP的方法步骤
2021/02/21 Python
5分钟弄清楚html5的drag and drop(小结)
2019/04/10 HTML / CSS
药学专业学生的自我评价分享
2014/02/06 职场文书
咖啡厅商业计划书
2014/09/15 职场文书
教师“一帮一”结对子活动总结
2015/05/07 职场文书
刘胡兰观后感
2015/06/16 职场文书
在酒桌上的敬酒词
2015/08/12 职场文书
JavaWeb 入门篇(3)ServletContext 详解 具体应用
2021/07/16 Java/Android
浅谈MySQL表空间回收的正确姿势
2021/10/05 MySQL