【问题标题】:Efficient way of storing large data set in phpMyAdmin SQL table在 phpMyAdmin SQL 表中存储大型数据集的有效方法
【发布时间】:2014-02-09 22:03:50
【问题描述】:

我有一个很大的练习列表,我当前存储在一个 SQL 表中,其中一列中有唯一索引值 (int),另一列中有练习名称。我正在尝试确定一种将练习集存储为锻炼的有效方法。

到目前为止,我有两个想法,但不确定哪个最有效(从存储和速度的角度来看)。这些是我正在考虑的想法:

解决方案 1 创建一个新表,其中包含每个锻炼的列,根据它是否在锻炼中,该列将具有 1 或 0。锻炼将是一个索引列,具有唯一的 int id。

解决方案 2 创建一个新表,其中包含一个表示唯一锻炼的索引列。第二列包含一组与训练集相对应的数字。我更喜欢这个选项的是它可以让我在锻炼中保持锻炼的顺序。

虽然我目前只有约 800 次锻炼和约 400 次锻炼的列表,使 (1) 数组大小为 800 x 400,而 (2) 为 400 x 2. 但是,如果可以选择创建新的锻炼(假设锻炼列表将被固定),表 (1) 的增长速度会显着加快。

有没有人对如何在这种情况下最小化尺寸和保持速度提出建议?

【问题讨论】:

  • phpMyAdmin 不是数据库,它只是 MySQL 的 GUI。 MySQL 是您的 SQL 数据库。
  • setidset name 的表; setexercisesidsetIdexerciseId(可能还有 orderId)的表

标签: php mysql sql phpmyadmin


【解决方案1】:

我喜欢 #2,但如果您想要更强大的解决方案,您也可以有 3 个表:

  1. 练习
  2. 锻炼
  3. workout_exercises

此外,我通常不会将每次锻炼的练习存储为数组。在该字段中使用 sql 搜索特定练习会很困难,例如:

哪些锻炼包含锻炼 XYZ?

您的桌子尺寸实际上很小。当您有 10,000 条记录或 100,000 条记录时,您可以开始考虑大小问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多