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 相关文章推荐
如何给phpadmin一个保护
Oct 09 PHP
PHP DataGrid 实现代码
Aug 12 PHP
php date()日期时间函数详解
May 16 PHP
PHP 数组排序方法总结 推荐收藏
Jun 30 PHP
php存储过程调用实例代码
Feb 03 PHP
php.ini修改php上传文件大小限制的方法详解
Jun 17 PHP
php获取远程图片体积大小的实例
Nov 12 PHP
PHP跨平台获取服务器IP地址自定义函数分享
Dec 29 PHP
PHP数学运算与数据处理实例分析
Apr 01 PHP
yii2分页之实现跳转到具体某页的实例代码
Jun 02 PHP
php项目开发中用到的快速排序算法分析
Jun 25 PHP
Ubuntu 16.04下安装PHP 7过程详解
Mar 28 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
phpmyadmin操作流程
2006/10/09 PHP
JavaScript CSS修改学习第五章 给“上传”添加样式
2010/02/19 Javascript
关于js获取radio和select的属性并控制的代码
2011/05/12 Javascript
JS获取图片高度宽度的方法分享
2015/04/17 Javascript
jquery实现图片左右切换的方法
2015/05/07 Javascript
初识Javascript小结
2015/07/16 Javascript
js实现div拖动动画运行轨迹效果代码分享
2015/08/27 Javascript
如何根据百度地图计算出两地之间的驾驶距离(两种语言js和C#)
2015/10/29 Javascript
工作中比较实用的JavaScript验证和数据处理的干货(经典)
2016/08/03 Javascript
jquery购物车结算功能实现方法
2020/10/29 Javascript
前端插件之Bootstrap Dual Listbox使用教程
2019/07/23 Javascript
jQuery实现滑动星星评分效果(每日分享)
2019/11/13 jQuery
antd多选下拉框一行展示的实现方式
2020/10/31 Javascript
[02:28]DOTA2英雄基础教程 狼人
2013/12/23 DOTA
python连接mysql数据库示例(做增删改操作)
2013/12/31 Python
Python设计实现的计算器功能完整实例
2017/08/18 Python
numpy中索引和切片详解
2017/12/15 Python
python 将md5转为16字节的方法
2018/05/29 Python
使用Django开发简单接口实现文章增删改查
2019/05/09 Python
基于Python的ModbusTCP客户端实现详解
2019/07/13 Python
使用canvas实现黑客帝国数字雨效果
2020/01/02 HTML / CSS
美国Max仓库:Max Warehouse
2020/05/31 全球购物
Harrods英国:世界领先的奢侈品百货商店
2020/09/23 全球购物
护理专业推荐信
2013/11/07 职场文书
2014年高三毕业生自我评价
2014/01/11 职场文书
文明村镇申报材料
2014/05/06 职场文书
2014年文艺部工作总结
2014/11/17 职场文书
业务员岗位职责
2015/02/03 职场文书
宣传稿格式范文
2015/07/23 职场文书
2016年公司“3.12”植树节活动总结
2016/03/16 职场文书
《和时间赛跑》读后感3篇
2019/12/16 职场文书
详解如何在Canvas中添加事件的方法
2021/04/17 Javascript
python中requests库+xpath+lxml简单使用
2021/04/29 Python
详解Python中下划线的5种含义
2021/07/15 Python
Java 垃圾回收超详细讲解记忆集和卡表
2022/04/08 Java/Android
postgresql中如何执行sql文件
2023/05/08 PostgreSQL