在数据库中存储 100K 个不同的表

Storing 100K different tables in DB

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

属性 姓名 |默认类型 |说明 |参考文献

类型 | 属性 |说明 |参考

代码 |说明 |参考

价值 |参考

类型 |说明 |参考文献

个数 |说明 |参考

此时所有内容都存储在 100K html 文件中,但我想将它们存储在数据库中。我想知道是否有人对如何以尽可能少的 tables 存储它们有任何建议。

当时想到的解决方案是:

  1. 创建大约 100K table 秒(最后一个解决方案)
  2. 有三组 tables,4+1col,6+1col 和 8+1col,使用奇数列作为列标题,偶数列作为值。每行都引用了一个外键,该外键指定了此数据的位置。查询它们的 bashed 列名和外键可以检索我的数据。

我想知道是否有人对此有更好的解决方案?

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

100K tables 既是糟糕的设计又可能是糟糕的性能。由于每个 table 是使用 1-3 个文件实现的,因此您依赖于 OS 的文件查找效率。另外,MySQL table 缓存不是为这样的大量数据设计的。

另一方面,

MySQL 很乐意处理一百万行 table。或者少量大tables.

CSV 文件的区别是什么?那会不会是它进入的 table 中的另一个 'column'?然后将所有具有 相同 结构(例如,Value + Ref)的文件放入 table 中,这些列再加一列?

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

  1. CREATE TABLE
  2. LOAD DATA 将一个文件放入 table
  3. 在SQL中对其进行操作(如有必要)并将其复制到最终的table中(INSERT ... SELECT ...

然后对每个文件重复。

对于 10 万个文件,您可能想要编写一个程序来创建执行 10 万个步骤的代码。