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数据库万能引擎类adodb配置使用以及实例集锦
Jun 12 PHP
ThinkPHP的Widget扩展实例
Jun 19 PHP
php常用文件操作函数汇总
Nov 22 PHP
分享最受欢迎的5款PHP框架
Nov 27 PHP
PHP实现简单搜歌的方法
Jul 28 PHP
PHP弹出对话框技巧详细解读
Sep 26 PHP
PHP判断手机是IOS还是Android
Dec 09 PHP
PHP 读取大文件并显示的简单实例(推荐)
Aug 12 PHP
PHP递归遍历指定文件夹内的文件实现方法
Nov 15 PHP
Yii2选项卡的简单使用
May 26 PHP
Yii2框架视图(View)操作及Layout的使用方法分析
May 27 PHP
CentOS7系统搭建LAMP及更新PHP版本操作详解
Mar 26 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中copy on write写时复制机制介绍
2014/05/13 PHP
smarty模板局部缓存方法使用示例
2014/06/17 PHP
windows7下安装php的php-ssh2扩展教程
2014/07/04 PHP
PHP实现表单提交时去除斜杠的方法
2016/12/26 PHP
php 中的closure用法详解
2017/06/12 PHP
javascript 有用的脚本函数
2009/05/07 Javascript
Javascript Tab 导航插件 (23个)
2009/06/11 Javascript
ExtJS PropertyGrid中使用Combobox选择值问题
2010/06/13 Javascript
JavaScript实现点击按钮后变灰避免多次重复提交
2013/07/15 Javascript
js中Image对象以及对其预加载处理示例
2013/11/20 Javascript
含有CKEditor的表单如何提交
2014/01/09 Javascript
jquery选择器之内容过滤选择器详解
2014/01/27 Javascript
JavaScript实现模仿桌面窗口的方法
2015/07/18 Javascript
简单介绍jsonp 使用小结
2016/01/27 Javascript
JQuery 在文档中查找指定name的元素并移除的实现方法
2016/05/19 Javascript
Node.js+Express配置入门教程
2016/05/19 Javascript
基于VuePress 轻量级静态网站生成器的实现方法
2018/04/17 Javascript
vue中实现左右联动的效果
2018/06/22 Javascript
vuejs点击class变化的实例
2018/09/05 Javascript
[20:21]《一刀刀一天》第十六期:TI国际邀请赛正式打响,总奖金超过550万
2014/05/23 DOTA
Python time模块详解(常用函数实例讲解,非常好)
2014/04/24 Python
numpy向空的二维数组中添加元素的方法
2018/11/01 Python
Django restframework 源码分析之认证详解
2019/02/22 Python
Python 实用技巧之利用Shell通配符做字符串匹配
2019/08/23 Python
python 安装库几种方法之cmd,anaconda,pycharm详解
2020/04/08 Python
Django中ORM找出内容不为空的数据实例
2020/05/20 Python
韩国最大的购物网站:Gmarket
2019/06/20 全球购物
关联、聚合(Aggregation)以及组合(Composition)的区别
2012/02/29 面试题
北京SQL新华信咨询
2016/09/30 面试题
生物科学专业个人求职信范文
2013/12/05 职场文书
医院实习介绍信
2014/01/12 职场文书
家具商场的活动方案
2014/08/16 职场文书
酒店销售经理岗位职责
2015/04/02 职场文书
超市督导岗位职责
2015/04/10 职场文书
疾病证明书
2015/06/19 职场文书
Python实现列表拼接和去重的三种方式
2021/07/02 Python