MySQL中的表类型结构

时间:2013-05-20 04:18:51

标签: mysql

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

  1. 创建一个USER表,主键为USER_ID
  2. 数据来自外部来源:例如“USER_ID,TIMESTAMP,DATA”
  3. 对于USER表中的每个用户,创建一个表以仅存储与USER_ID相关的数据条目,并将具有正确USER_ID的所有传入数据存储到该表中
  4. 查询特定USER_ID的所有数据条目时,只需返回该表中的所有行。
  5. 我当然可以在一个表“ALLDATALOG”中执行此操作,然后在ALLDATALOG中搜索包含USER_ID的所有条目,但我担心的是随着ALLDATALOG表的增长,搜索将花费太长时间。

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

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

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