在DB中存储100K个不同的表

时间:2015-12-13 22:27:30

标签: mysql sql-server database database-design architecture

我有大约100K的2,3或4列表。每个表有大约5-10行数据。但是每列都有自己唯一的列名和数据类型。这里有100个表列名称中的6个示例,大约有10行。

物业名称|默认类型|说明|参考

输入|财产|说明|参考

代码|说明|参考

价值|参考

输入|说明|参考

号码|说明|参考

此时所有内容都存储在100K html文件中,但我想将它们存储在DB中。我想知道是否有人建议如何用尽可能少的表存储它们。

正在思考的解决方案是:

  1. 创建约100K表(上一个解决方案)
  2. 有三组表,4 + 1col,6 + 1col和8 + 1col,并使用奇数列作为列标题,使用偶数列作为值。每行都引用了一个外键,用于指定此数据的位置。查询它们的列名称和外键可以检索我的数据。
  3. 我想知道是否有人能更好地解决这个问题?

2 个答案:

答案 0 :(得分:1)

100K表是糟糕的设计和潜在的糟糕表现。由于每个表都使用1-3个文件实现,因此您可以根据操作系统的文件查找效率进行操作。此外,MySQL表缓存不是为那些大数字而设计的。

另一方面,MySQL非常乐意处理百万行表。或者是少数大表。

一个CSV文件与另一个文件的区别是什么?这可能是表中的另一个“专栏”吗?然后让所有具有相同结构的文件(例如,Value + Ref)进入一个包含这些列的表还有一个?

考虑以这种方式进行加载:

  1. CREATE TABLE
  2. LOAD DATA将一个文件带入该表
  3. 在SQL中操作它(如有必要)并将其复制到终极表(INSERT ... SELECT ...
  4. 然后对每个文件重复。

    对于100K文件,您可能希望编写一个程序来创建执行100K步骤的代码。

答案 1 :(得分:0)

您可以将html文件转换为CSV格式stated here并将数据导入mysql数据库。