怎么将1亿条数据分100张表到Mysql数据库中

  介绍

这篇文章给大家分享的是有关怎么将1亿条数据分100张表到Mysql数据库中的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

通过创建100张表来演示下1亿条数据的分表过程,具体请看下文代码。

当数据量猛增的时候,大家都会选择库表散列等等方式去优化数据读写速度。笔者做了一个简单的尝试,1个亿条数据,分100张表。具体实现过程如下:

首先创建100张表:

, $ i=0;   ,而(i<美元=99){   ,echo “newNumber 美元;\ r \ n";   ,$ sql=癈REATE  TABLE “code_"。美元我!””,(   “full_code”大敌;char (10), NOT 空,   ,' create_time ' int (10), unsigned  NOT 空,   ,PRIMARY  KEY  (“full_code”),   ,)引擎=MyISAM  DEFAULT  CHARSET=utf8";   美元,mysql_query (sql);   美元,我+ +,

下面说一下我的分表规则,full_code作为主键,我们对full_code做散列

函数如下:

$ table_name=get_hash_table(& # 39;代码# 39;,full_code美元);   function  get_hash_table(表,代码,美元=100美元){   $ hash =, sprintf (“% u",, crc32(代码)美元);   echo 美元散列;   hash2 美元;=,intval中(fmod($散列,,$ s));   干净自己的桌子,return  $ _" hash2美元;   }

这样插入数据前通过get_hash_table获取数据存放的表名。

最后我们使用合并存储引擎来实现一张完整的代码表

CREATE  TABLE  IF  NOT  EXISTS “代码”,(,   “full_code”, char (10), NOT 空,   “create_time”, int (10), unsigned  NOT 空,   指数(full_code),   ),类型=MERGE 联盟=(code_0、code_1 code_2 .......), INSERT_METHOD=LAST ;

这样我们通过<强> select * from代码就可以得到所有的<强> full_code 数据了。

感谢各位的阅读!关于“怎么将1亿条数据分100张表到Mysql数据库中”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

怎么将1亿条数据分100张表到Mysql数据库中