0

我遇到了在 MySQL 库中上传数据的问题。好吧,我有超过3700 万个随机生成的代码(8 位)。

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

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

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

有任何想法吗?

4

2 回答 2

4

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

像这样的设计肯定会打破一些规范化规则。您的代码应该有一种关系。

3700 万对于数据库来说并不是一个很大的数字。为什么你认为你需要这样做?

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

代码是静态的和只读的吗?或者你也写信给这张桌子?

如果我不得不求助于您所描述的方案,我会使用数据库本身将数据选择到分区表中。数据库经过优化可以做这种事情。

于 2013-05-30T11:43:56.433 回答
0

我会做以下事情。创建一个临时表。将所有代码一次性插入临时表中。根据第一个字符查询要插入其他表的临时表。一个简单的 where 子句就可以解决问题,没有什么复杂的。不应该花很长时间,它只有 3700 万条记录。

于 2013-05-30T11:49:16.943 回答