介绍
这篇文章给大家分享的是有关怎么将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数据库中”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!