gpt4 book ai didi

mysql - 在这种情况下使用 int 而不是 bigint 有什么好处?

转载 作者:行者123 更新时间:2023-11-29 02:37:30 27 4
gpt4 key购买 nike

(MYSQL n00b)

我有 3 个表:

id = int(10), photo_id = bigint(20)

PHOTO records limited to 3 million

PHOTO:
+-------+-----------------+
| id | photo_num |
+-------+-----------------+
| 1 | 123456789123 |
| 2 | 987654321987 |
| 3 | 5432167894321 |
+-------+-----------------+

COLOR:
+-------+-----------------+---------+
| id | photo_num | color |
+-------+-----------------+---------+
| 1 | 123456789123 | red |
| 2 | 987654321987 | blue |
| 3 | 5432167894321 | green |
+-------+-----------------+---------+


SIZE:
+-------+-----------------+---------+
| id | photo_num | size |
+-------+-----------------+---------+
| 1 | 123456789123 | large |
| 2 | 987654321987 | small |
| 3 | 5432167894321 | medium |
+-------+-----------------+---------+

COLOR 表和 SIZE 表都有数百万条记录。

问题 1:将 COLOR 和 SIZE 上的 photo_num 更改为 int(10) 并将其指向 PHOTO 的 id 是否更好?

现在我用这些:(照片不在图片中)

SELECT * from COLOR WHERE photo_num='xxx';
SELECT * from SIZE WHERE photo_num='xxx';

Q2:如果在 COLOR、SIZE 中使用了 PHOTO id,SELECT 查询将如何显示?

最佳答案

Q1:使用int作为外键比较好,但更重要的是正确索引表。如果您有正确的索引,无论哪种方式都可能足够好。对于您的查询,您需要确保 photo_num 已在所有表上建立索引。

我也想知道你为什么决定把它分成这样的表。一张照片可以有多种尺寸或颜色吗?单独表格的目的是什么?

Q2:它将使用 JOIN:

SELECT *
FROM color
JOIN photo
ON photo.id = color.photo_id
WHERE photo_num='xxx'

关于mysql - 在这种情况下使用 int 而不是 bigint 有什么好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3013864/

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