Mysql 十进制类型性能按位数设置
Mysql decimal type performance by digits setting
我阅读了关于 Mysql 小数类型大小的在线文档:
剩余位数
字节数
0
0
1–2
1
3–4
2
5–6
3
7–9
4
所以我们知道数字7~9在磁盘中占用相同的大小,但是性能如何呢? 7 位数是否与 9 位数相同或更好?
DECIMAL
由假设每个字节打包 2 位数字或每个 32 位整数打包 9 位数字的库实现。 7 个数字放不下 3 个字节; 9 将适合 4 个字节。该库最多允许 64(或可能只有 63)位数字——一个相当大的值。
在DECIMAL(M,N)
中,数据是根据M和N来限制的,限制在7还是9应该对性能没有影响。即使是这样,与更大的问题(例如获取行)相比,工作量也很小。
提示:一个简单的经验法则:DECIMAL(M,N)
占用 大约 M/2 个字节。
DECIMAL(11,2)
for money 在 5 个字节中最多允许十亿 dollars/Euros/etc。我看不出使用 (10,2) 或 (9,2) 有什么好处,每个也是 5 个字节。
我阅读了关于 Mysql 小数类型大小的在线文档:
剩余位数 | 字节数 |
---|---|
0 | 0 |
1–2 | 1 |
3–4 | 2 |
5–6 | 3 |
7–9 | 4 |
所以我们知道数字7~9在磁盘中占用相同的大小,但是性能如何呢? 7 位数是否与 9 位数相同或更好?
DECIMAL
由假设每个字节打包 2 位数字或每个 32 位整数打包 9 位数字的库实现。 7 个数字放不下 3 个字节; 9 将适合 4 个字节。该库最多允许 64(或可能只有 63)位数字——一个相当大的值。
在DECIMAL(M,N)
中,数据是根据M和N来限制的,限制在7还是9应该对性能没有影响。即使是这样,与更大的问题(例如获取行)相比,工作量也很小。
提示:一个简单的经验法则:DECIMAL(M,N)
占用 大约 M/2 个字节。
DECIMAL(11,2)
for money 在 5 个字节中最多允许十亿 dollars/Euros/etc。我看不出使用 (10,2) 或 (9,2) 有什么好处,每个也是 5 个字节。