我有大约 100K 组表,它们是 2,3 或 4 列。每个表大约有 5-10 行数据。但是每一列都有自己唯一的列名和数据类型。这是 100K 表列名称中的 6 个示例,大约 10 行。
属性名称 |默认类型 |说明 |引用
类型 |属性(property) |说明 |引用
代码 |说明 |引用
值(value) |引用
类型 |说明 |引用
数量 |说明 |引用
此时所有内容都存储在 100K html 文件中,但我想将它们存储在数据库中。我想知道是否有人对如何使用尽可能少的表存储它们有任何建议。
当时想到的解决方案是:
- 创建大约 10 万张表(最后的解决方案)
- 有三组表格,4+1col、6+1col 和 8+1col,使用奇数列作为列标题,偶数列作为值。每行都引用了一个外键,该外键指定了此数据的位置。查询它们的 bashed 列名和外键可以检索我的数据。
我想知道是否有人对此有更好的解决方案?
最佳答案
100K 表既是糟糕的设计,也可能是糟糕的性能。由于每个表都是使用 1-3 个文件实现的,因此您依赖于操作系统的文件查找效率。此外,MySQL 表缓存并不是为这样的大量数据而设计的。
另一方面,MySQL 很乐意处理百万行的表。或者少量的大表。
CSV 文件与其他文件的区别是什么?那可能是它进入的表中的另一个“列”吗?然后将具有相同结构(例如,Value + Ref)的所有文件放入一个包含这些列的表中,然后再加一列?
考虑以这种方式进行加载:
创建表
LOAD DATA
将一个文件放入该表- 在 SQL 中对其进行操作(如有必要)并将其复制到最终表中(
INSERT ... SELECT ...
)
然后对每个文件重复。
对于 10 万个文件,您可能想要编写一个程序来创建执行 10 万个步骤的代码。
关于mysql - 在数据库中存储 100K 个不同的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34257147/