MySQL:将1个主表连接到1000个子表

标签 mysql

我有一个问题。

我有一个 url 主表。 UrlId 是主键。从 10000 开始。在这个表中我有我找到的所有 url 地址。然后我在不同的数据库中有 1000 个表(所以我不能使用外键)。它们彼此相同,例如 urldata.100 到 urldata.999。 (这里我存储元数据等)

假设我想在连接中使用 left 函数来连接每个主记录

Id 10000 - 连接到表 urldata.100 ID 11034 - 连接到表 urldata.110

所以我想在大规模连接中从主表中取出每个 UrlId 的前 3 个数字。

这能实现吗?

最佳答案

这是一个非常非常糟糕的设计,因为它限制了可扩展性以及数据库的性能。

如果您确实想存储不同 UrlIds 的元数据,则只需创建一个表。将其命名为 UrlMeta 或类似名称。

结构为(UrlID, MetaName, MetaValue)。此结构可以存储任意数量的元数据,如 (MetaName, MetaValue) 对。

管理好这个之后,您的查询将变得非常简单,因为您只需要连接 2 个表,而不是 1001 个!

关于MySQL:将1个主表连接到1000个子表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14600859/

相关文章:

mysql - delete_all 是否会忽略基于连接表的条件?

php - MYSQL PHP PDO 事务中的语句顺序

php - 无法弄清楚为什么 sql 查询返回空对象

php - Excel 加载到 MySQL - 性能

python - 如何从 MySql 数据库读取 Scrapy Start_urls?

javascript - 如何将经过验证的 JavaScript 数据存入 MySQL 数据库

mysql - MySql 多个日期时间范围

mysql - 无法使用 DBeaver 连接到本地主机上的 MariaDB

mysql - 使用文本框 VB.net 在 Datagridview 中搜索

php - 如何基于 GET 搜索选择多个字段?