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使之能同时支持GIF和JPEG
Oct 09 PHP
windows环境下php配置memcache的具体操作步骤
Jun 09 PHP
php中jpgraph类库的使用介绍
Aug 08 PHP
php多维数组去掉重复值示例分享
Mar 02 PHP
PHP中array_map与array_column之间的关系分析
Aug 19 PHP
Yii框架中 find findAll 查找出制定的字段的方法对比
Sep 10 PHP
mod_php、FastCGI、PHP-FPM等PHP运行方式对比
Jul 02 PHP
PHP 开发者该知道的 5 个 Composer 小技巧
Feb 03 PHP
php resizeimage 部分jpg文件 生成缩略图失败的原因分析及解决办法
Mar 23 PHP
PHP使用SOAP扩展实现WebService的方法
Apr 01 PHP
ThinkPHP使用getlist方法实现数据搜索功能示例
May 08 PHP
使用laravel的Eloquent模型如何获取数据库的指定列
Oct 17 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入门速成教程
2007/03/19 PHP
PHP生成网页快照 不用COM不用扩展.
2010/02/11 PHP
php addslashes及其他清除空格的方法是不安全的
2012/01/25 PHP
php函数array_merge用法一例(合并同类数组)
2013/02/03 PHP
PHP实现多图片上传类实例
2014/07/26 PHP
Thinkphp中的curd应用实用要点
2015/01/04 PHP
jquery怎样实现ajax联动框(二)
2013/03/08 Javascript
超级简单的jquery操作表格方法
2014/12/15 Javascript
有效提高JavaScript执行效率的几点知识
2015/01/31 Javascript
jQuery经过一段时间自动隐藏指定元素的方法
2015/03/17 Javascript
Jquery使用css方法改变样式实例
2015/05/18 Javascript
jquery实现鼠标经过显示下划线的渐变下拉菜单效果代码
2015/08/24 Javascript
利用JQuery实现datatables插件的增加和删除行功能
2017/01/06 Javascript
javascript实现圣旨卷轴展开效果(代码分享)
2017/03/23 Javascript
详解webpack 打包文件体积过大解决方案(code splitting)
2018/04/10 Javascript
Vue2.0+Vux搭建一个完整的移动webApp项目的示例
2019/03/19 Javascript
JavaScript判断浏览器运行环境的详细方法
2019/06/30 Javascript
[01:23]2014DOTA2国际邀请赛 球迷无处不在Ti现场世界杯受关注
2014/07/10 DOTA
python统计文本文件内单词数量的方法
2015/05/30 Python
Python 2.x如何设置命令执行的超时时间实例
2017/10/19 Python
Python实现购物车购物小程序
2018/04/18 Python
Python3中bytes类型转换为str类型
2018/09/27 Python
tensorflow没有output结点,存储成pb文件的例子
2020/01/04 Python
10个python3常用排序算法详细说明与实例(快速排序,冒泡排序,桶排序,基数排序,堆排序,希尔排序,归并排序,计数排序)
2020/03/17 Python
如何使用Python进行PDF图片识别OCR
2021/01/22 Python
可以随进度显示不同颜色的css3进度条分享
2014/04/11 HTML / CSS
Spartoo西班牙官网:法国时尚购物网站
2018/03/27 全球购物
酒店中秋节促销方案
2014/01/30 职场文书
企业军训感言
2014/02/08 职场文书
国际残疾人日广播稿范文
2014/10/09 职场文书
劳动争议和解协议书范本
2014/11/20 职场文书
学习雷锋精神倡议书
2015/04/27 职场文书
2015年生活老师工作总结
2015/05/27 职场文书
2016年大学生党员公开承诺书
2016/03/24 职场文书
为什么阅读对所有年龄段的孩子都很重要?
2019/07/08 职场文书
opencv深入浅出了解机器学习和深度学习
2022/03/17 Python