2

我想知道是否有可能具有以下数据库行为:

  1. 创建一个 USER 表,主键为 USER_ID
  2. 数据来自外部来源:例如“USER_ID, TIMESTAMP, DATA”
  3. 对于 USER 表中的每个用户,创建一个表以仅存储与 USER_ID 相关的数据条目,并将具有正确 USER_ID 的所有传入数据存储到该表中
  4. 在查询特定 USER_ID 的所有数据条目时,只需返回该表中的所有行。

我当然可以在一个表“ALLDATALOG”中完成这一切,然后搜索 ALLDATALOG 中包含 USER_ID 的所有条目,但我担心随着 ALLDATALOG 表的增长,搜索将花费太长时间。

4

2 回答 2

1

你不应该那样拆分你的表。您需要在数据日志表中的 USER_ID 列上建立索引。随着数据大小的增加,搜索确实会变慢,但您的策略不一定会缓解这种情况。但是,它会使您的应用程序编写起来更复杂,更难调试,并且很可能实际上会减慢它的速度。

您还应该考虑将数据 blob 解压缩到适当的其他列和表中,以便利用数据库的关系特性。

随着时间的推移,您希望该表保留多少行?数千?百万?数十亿?您希望以什么速率添加行?

于 2013-05-20T04:46:49.060 回答
0

建议1:正如乔纳森回答的那样,不要拆分表格。它不会帮助您提高速度。

建议2:如果你还想拆分表。使用 PHP 代码中的逻辑。检查特定用途的表是否已经存在。如果是,则在其中插入值,如果它不创建新值。应该很直截了当。如果您希望我为此共享代码,请告诉我。

于 2013-05-20T06:58:30.560 回答