gpt4 book ai didi

Mysql:为什么在定义表时要使用适当的数据大小并选择最佳数据长度

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

我有一个存储用户详细信息的表。我几乎无法拥有 10K 值。它的ID字段被定义为bigint(20),甚至可以容纳很大的大数据范围。

现在,将其更改为 SMALLINT 会在性能或存储方面带来任何好处吗...?请有人解释一下这是怎么回事。

我创建了两个小表
ID 为 INT(10)
另一个 ID 为 INT(100)

我在每个行中插入了 513 行。当我看到每个人的显示创建表时,我没有看到数据大小或索引大小有任何变化。它们是 MYISAM 表。那么选择 SMALLINT 比 int(100) 或 INT(10) 更好

这是该信息

| id    | int(10) | NO   | PRI | NULL    | auto_increment |
| size | int(10) | YES | | NULL | |
Data_length: 4617
Index_length: 8192


| id | int(100) | NO | PRI | NULL | auto_increment |
| size | int(10) | YES | | NULL | |
Data_length: 4617
Index_length: 8192

最佳答案

数据类型和“长度”之间有一个重要区别。

int(10) 和 int(100) 实际上是相同的数据类型,因此它们都占用 4 个字节。 “10”和“100”仅影响数据的显示方式,而不影响数据的存储方式。

选择数据类型是存储效率和存储更大范围值的灵 active 之间的权衡。

这是来自 manual 的有用图表:

Type    Storage     Minimum Value       Maximum Value
(Bytes) (Signed/Unsigned) Signed/Unsigned)
TINYINT 1 -128 127
0 255
SMALLINT 2 -32768 32767
0 65535
MEDIUMINT 3 -8388608 8388607
0 16777215
INT 4 -2147483648 2147483647
0 4294967295
BIGINT 8 -9223372036854775808 9223372036854775807
0 18446744073709551615

关于Mysql:为什么在定义表时要使用适当的数据大小并选择最佳数据长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10210430/

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