在MySQL中输入MASSIVE数据

时间:2013-05-30 11:33:58

标签: php mysql sql

我在MySQL基础上上传数据时遇到了问题。 好吧,我有 3700万随机生成的代码(8位数)。

我想在已定义的表中将它们上传到MySQL中。我的意思是我想按照起始字母对代码进行排序并上传到相应的表格中 例如: 如果代码以 W 开头,则需要在 W_codes 表中上传 如果代码以 1 开头,则需要在 1_codes 表中上传 等等...

我有一个C#程序,它自己进行排序并将代码上传到MySQL,但每100万个代码需要6-7个小时。

您是否有更简单的想法如何进行排序,然后在相应的表格中上传代码? MySQL .sql上传大小限制为128MB ..

任何想法?

2 个答案:

答案 0 :(得分:4)

我认为以这种方式划分代码对我来说没有多大意义。时间或地理编码分区会更有意义。

这样的设计肯定会破坏一些规范化规则。你的代码应该有一个关系。

对于数据库而言,3700万不是那么大的数字。为什么你认为你需要这样做?

我将它们全部加载到数据库中的单个表中,看看它是如何执行的。如果代码是主键,或者用于访问数据的WHERE子句是什么样的,则不说该表是否具有其他值。也许你只是没有正确索引表。这会对查询时间产生巨大影响。

代码是静态的还是只读的?或者你也写这个表?

如果我不得不求助于你所描述的方案,我会使用数据库本身将数据选择到分区表中。数据库经过优化以完成此类工作。

答案 1 :(得分:0)

我会做以下事情。 创建临时表。将所有代码一次性插入临时表中。 根据第一个字符查询temptable以插入到其他表中。一个简单的where子句应该做的伎俩,没什么复杂的。不应该长期只有3700万条记录。