gpt4 book ai didi

sql - 当我知道值不会超过 255 时,设置 tinyint 字段是否有优势?

转载 作者:行者123 更新时间:2023-12-02 07:15:15 24 4
gpt4 key购买 nike

我应该选择尽可能小的数据类型,或者如果我存储值 1,那么 col 数据类型是什么并不重要,并且值将占用相同的内存大小?

问题也是,因为我总是必须转换它并在应用程序中玩弄。


更新

如果值为“a”,我认为 varchar(1) 和 varchar(50) 的内存大小相同,我认为它与 int 和 tinyint 相同,根据我理解的答案,它不是,是吗?

最佳答案

始终选择尽可能小的数据类型。 SQL 无法猜测您想要的最大值是多少,但是一旦您告诉它数据类型,它就可以优化存储和性能。


回答您的更新:

varchar 确实只占用您使用的空间,所以当您说字符“a”将占用 1 个字节(在拉丁编码中)时,您是对的,无论多大您选择的 varchar 字段。 SQL 中任何其他类型的字段都不是这种情况。

但是,如果您将所有内容都设为 varchar 字段,您可能会牺牲空间效率。如果一切都是固定大小的字段,那么 SQL 可以进行简单的常数时间乘法来找到您的值(如数组)。如果那里有 varchar 字段,那么找出数据存储位置的唯一方法是遍历所有以前的字段(如链表)。

如果您开始使用 SQL,那么我建议您不要使用 varchar 字段,除非您希望字段有时包含非常少量的文本,有时包含大量的文本(例如博客文章)。知道何时使用可变长度字段以达到最佳效果需要经验,即使我大部分时间都不知道。

关于sql - 当我知道值不会超过 255 时,设置 tinyint 字段是否有优势?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1628551/

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