gpt4 book ai didi

mysql - 如何最好地在 SQL 中存储记录以进行访问/性能查询

转载 作者:行者123 更新时间:2023-11-29 09:41:02 24 4
gpt4 key购买 nike

我一直在研究如何最好地将数据存储在 SQL 表中。

我预计会有大约 50,000 个条目,其中我需要存储 4 个 Judge_id“分数”。

我想到的第一个选项是每个条目简单地输入 4 行,如下所示:

id      entry_id        round_id        judge_id        score       created_at      updated_at
1 1234 1 1 10 1560690340 null

id entry_id round_id judge_id score created_at updated_at
2 1234 1 2 7 1560690340 null

id entry_id round_id judge_id score created_at updated_at
3 1234 1 3 9 1560690340 null

id entry_id round_id judge_id score created_at updated_at
4 1234 1 4 3 1560690340 null

据我了解,这将允许轻松访问查询,但会产生 200,000 行,而不是 50,000 行。这会导致性能问题吗?

我想到的第二个选项是使用单行,将评分数据(judge_id(key)、score、created_at、updated_at)存储在数组中。

据我了解,在返回结果之前我无法查询数组中的数据,这将使其无用。

id      entry_id        round_id        score
1 1234 1 $score

$score = array('1' => array('score' => '10', 'created_at' => '1560690340', 'updated_at' => 'null'), '2' => array('score' => '7', 'created_at' => '1560690340', updated_at' => 'null'), '3' => array('score' => '9', 'created_at' => '1560690340', 'updated_at' => 'null'), '4' => array('score' => '3', 'created_at' => '1560690340', 'updated_at' => 'null'));

有人能够就如何最好地存储这些数据提供任何建议吗?

最佳答案

如果您能添加您想要使用的搜索查询示例,那就太好了。或者至少哪些数据将用于搜索。这样就可以更轻松地找到适合您情况的最佳解决方案。

首先,您示例中的“id”列看起来毫无用处,您实际上需要它吗?您可以使用两列“entry_id”和“round_id”创建主键(例如,如果所有其他数据将保存为 json)。我主要使用 PostgreSQL,在这种情况下我们使用 jsonb 列类型,我还在 MySQL 中看到了 json 列,您还可以将数据保存为 json 而不是数组,使用 SQL 查询在此 json 中进行搜索。

另一种选择是以传统方式使用数据库范式将数据保存在多个表中,并使用联接进行搜索。 200.000 行对于 MySQL 来说并不算太多。

替代方案:您也可以使用像 Elastic Search 这样的搜索引擎,索引所有数据并使用大量搜索选项在该引擎中进行搜索,Elastic Search 还会返回一些数据。

关于mysql - 如何最好地在 SQL 中存储记录以进行访问/性能查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56620351/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com