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 相关文章推荐
VML绘图板②脚本--VMLgraph.js、XMLtool.js
Oct 09 PHP
PHP在获取指定目录下的目录,在获取的目录下面再创建文件,多平台
Aug 03 PHP
解析用PHP读写音频文件信息的详解(支持WMA和MP3)
May 10 PHP
2014过年倒计时示例
Jan 31 PHP
使用PHP生成二维码的两种方法(带logo图像)
Mar 14 PHP
php自定义session示例分享
Apr 22 PHP
php实现的百度搜索某地天气的小偷代码
Apr 23 PHP
php中socket的用法详解
Oct 24 PHP
thinkphp3.x中session方法的用法分析
May 20 PHP
php中实现字符串翻转的方法
Feb 22 PHP
thinkPHP3.2.3结合Laypage实现的分页功能示例
May 28 PHP
PHP执行linux命令6个函数代码实例
Nov 24 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 生成N个不重复的随机数
2015/01/21 PHP
PHP下载生成的csv文件及问题总结
2015/08/06 PHP
PHP中使用GD库绘制折线图 折线统计图的绘制方法
2015/11/09 PHP
php中访问修饰符的知识点总结
2019/01/27 PHP
jquery(live)中File input的change方法只起一次作用的解决办法
2011/10/21 Javascript
jquery的ajax()函数传值中文乱码解决方法介绍
2012/11/08 Javascript
js将json格式内容转换成对象的方法
2013/11/01 Javascript
js 判断文件类型并控制表单提交示例代码
2013/11/14 Javascript
JavaScript动态改变HTML页面元素例如添加或删除
2014/08/10 Javascript
浅谈Sizzle的“编译原理”
2015/04/14 Javascript
jQuery实现dialog设置focus焦点的方法
2015/06/10 Javascript
基于jQuery Bar Indicator 插件实现进度条展示效果
2015/09/30 Javascript
JS 通过系统时间限定动态添加 select option的实例代码
2016/06/09 Javascript
微信小程序 MD5加密登录密码详解及实例代码
2017/01/12 Javascript
完美解决spring websocket自动断开连接再创建引发的问题
2017/03/02 Javascript
js常用的继承--组合式继承
2017/03/06 Javascript
jquery与js实现全选功能的区别
2017/06/11 jQuery
Angular中的$watch、$watchGroup、$watchCollection
2017/06/25 Javascript
使用jQuery实现页面定时弹出广告效果
2017/08/24 jQuery
浅谈Node.js CVE-2017-14849 漏洞分析(详细步骤)
2017/11/10 Javascript
JS中的函数与对象的创建方式
2019/05/12 Javascript
Vue + Elementui实现多标签页共存的方法
2019/06/12 Javascript
layui-table获得当前行的上/下一行数据的例子
2019/09/24 Javascript
python字符串过滤性能比较5种方法
2017/06/22 Python
Python实现的质因式分解算法示例
2018/05/03 Python
Python3.6实现带有简单界面的有道翻译小程序
2019/04/16 Python
Python如何基于smtplib发不同格式的邮件
2019/12/30 Python
pyqt5数据库使用详细教程(打包解决方案)
2020/03/25 Python
美国最大的烧烤架和户外生活用品专业零售商:Barbeques Galore
2021/01/09 全球购物
初三物理教学反思
2014/01/21 职场文书
写求职信有哪些注意事项
2014/05/08 职场文书
企业安全生产演讲稿
2014/05/09 职场文书
新党章心得体会
2014/09/04 职场文书
先进教师个人事迹材料
2014/12/15 职场文书
写给老师的感谢信
2015/01/20 职场文书
2016年“世界气象日”广播稿
2015/12/17 职场文书