gpt4 book ai didi

MySQL:为什么建议在 int 而不是 varchar 字段上加入?

转载 作者:行者123 更新时间:2023-11-29 06:15:25 25 4
gpt4 key购买 nike

让我们考虑一下这种奇怪的情况,
索引冗余的地方。

TableA (item_id, code_key, data01, ... data0n)
TableB (item_id, code_key, dataA1, ... dataAn)

item_id 和 code_key 都是唯一的,它们可以是两个表中的主键。可以从两个表中删除 item_id 或 code_key 而不会丢失任何引用/关系。

我知道这是多余的,但这不是问题的重点。考虑到,两列都已编入索引。

Item_id 是一个 INT,codeKey 是一个 VARCHAR(100)。

有人建议这样查询更好:

select * from TableA INNER JOIN TableB USING(item_id)

而不是:

select * from TableA INNER JOIN TableB USING(code_key) 

我不明白这有什么意义,因为两列都已编入索引并且性能相同....不是吗?

是不是在 ON 子句中使用 INT 会比使用 VARCHAR 更快?即使它们都已编入索引?

最佳答案

Int comparisons are faster than varchar comparisons, for the simple fact that ints take up much less space than varchars.

This holds true both for unindexed and indexed access. The fastest way to go is an indexed int column.

-- @Robert Munteanu

希望对您有所帮助。没有太大区别,但我们重视速度性能。 varchar 越长,速度越慢。

关于MySQL:为什么建议在 int 而不是 varchar 字段上加入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36149416/

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