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 IPV6正则表达式验证代码
Feb 16 PHP
提高PHP性能的编码技巧以及性能优化详细解析
Aug 24 PHP
微信公众平台消息接口校验与消息接口响应实例
Dec 23 PHP
Windows下编译PHP5.4和xdebug全记录
Apr 03 PHP
php使用Jpgraph绘制饼状图的方法
Jun 10 PHP
php实现将Session写入数据库
Jul 26 PHP
php实现购物车功能(下)
Jan 05 PHP
PHP实现的进度条效果详解
May 03 PHP
php获取POST数据的三种方法实例详解
Dec 20 PHP
Yii2.0中使用js异步删除示例
Mar 10 PHP
ThinkPHP 3.2.3实现加减乘除图片验证码
Dec 05 PHP
PDO::commit讲解
Jan 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中神奇的fastcgi_finish_request
2011/05/02 PHP
PHP树-不需要递归的实现方法
2016/06/21 PHP
javaScript 数值型和字符串型之间的转换
2009/07/25 Javascript
JQuery AJAX提交中文乱码的解决方案
2010/07/02 Javascript
2012年开发人员的16款新鲜的jquery插件体验分享
2012/12/28 Javascript
高效的获取当前元素是父元素的第几个子元素
2013/10/15 Javascript
JavaScript脚本判断蜘蛛来源的方法
2015/09/22 Javascript
利用node.js搭建简单web服务器的方法教程
2017/02/20 Javascript
canvas压缩图片转换成base64格式输出文件流
2017/03/09 Javascript
Angular实现下载安装包的功能代码分享
2017/09/05 Javascript
jQuery Dom元素操作技巧
2018/02/04 jQuery
使用Vue.observable()进行状态管理的实例代码详解
2019/05/26 Javascript
如何基于javascript实现贪吃蛇游戏
2020/02/09 Javascript
在Vue中使用mockjs代码实例
2020/11/25 Vue.js
浅谈Python实现Apriori算法介绍
2017/12/20 Python
数据清洗--DataFrame中的空值处理方法
2018/07/03 Python
Python面向对象程序设计类变量与成员变量、类方法与成员方法用法分析
2019/04/12 Python
Django时区详解
2019/07/24 Python
python3 selenium自动化测试 强大的CSS定位方法
2019/08/23 Python
PyCharm专业最新版2019.1安装步骤(含激活码)
2019/10/09 Python
python列表推导式操作解析
2019/11/26 Python
Python坐标轴操作及设置代码实例
2020/06/04 Python
使用SimpleITK读取和保存NIfTI/DICOM文件实例
2020/07/01 Python
Python使用tkinter制作在线翻译软件
2021/02/22 Python
python 基于pygame实现俄罗斯方块
2021/03/02 Python
Ashford台湾:以折扣价提供奢华的男女用表款
2019/12/04 全球购物
计算机科学与技术应届生求职信
2013/11/07 职场文书
大学生个人简历自我评价
2013/11/16 职场文书
小学家长评语大全
2014/04/16 职场文书
学校党的群众路线教育实践活动总结报告
2014/07/03 职场文书
机关党建工作汇报材料
2014/08/20 职场文书
红领巾广播站广播稿(3篇)
2014/09/20 职场文书
高中生旷课检讨书
2014/10/08 职场文书
2015年乡镇平安建设工作总结
2015/05/13 职场文书
田径运动会通讯稿
2015/07/18 职场文书
Python requests用法和django后台处理详解
2022/03/19 Python