在 phpMyAdmin SQL 表中存储大型数据集的有效方法
Posted
技术标签:
【中文标题】在 phpMyAdmin SQL 表中存储大型数据集的有效方法【英文标题】:Efficient way of storing large data set in phpMyAdmin SQL table 【发布时间】: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 数据库。set
与 id
和 set name
的表; setexercises
与 id
、setId
和 exerciseId
(可能还有 orderId
)的表
【参考方案1】:
我喜欢 #2,但如果您想要更强大的解决方案,您也可以有 3 个表:
-
练习
锻炼
workout_exercises
此外,我通常不会将每次锻炼的练习存储为数组。在该字段中使用 sql 搜索特定练习会很困难,例如:
哪些锻炼包含锻炼 XYZ?
您的桌子尺寸实际上很小。当您有 10,000 条记录或 100,000 条记录时,您可以开始考虑大小问题。
【讨论】:
以上是关于在 phpMyAdmin SQL 表中存储大型数据集的有效方法的主要内容,如果未能解决你的问题,请参考以下文章
将大型 .sql 文件导入数据库 - 重复超时错误 phPMYAdmin
在 phpMyadmin 中导入大型 SQL 文件 [重复]