基于MySq为字段选择详细的解决方案
MySQL支持多种字段类型,包括数字类型、日期/时间类型和字符串类型。当使用时,需要考虑存储空间和存储效率。下面的定制用于几种列类型描述:
M
表示最大显示宽度。最大有效显示宽度为255。
D
时间类型:日期时间(8bytes)、时间戳(4bytes)
字符类型:
VARCHAR(M),L + 1字节,L≤m和0 <= M = 65535,不应设置太大,因为在内存中的实际长度来计算的,这就要求资源被消耗。
char(m)m字节,0 < = m=255
二进制(m),m字节,0 < < = 255
varbinary(M),L + 1字节,L M 0≤M < = 255
枚举('value1 ','value2 ',…),1或2个字节,取决于枚举值的数目(65535值)。调整更为复杂。创建时需要删除。当枚举值小于255时,它占用1字节,占大于255的2字节。
集('value1 ','value2 ',…)1, 2, 3,4,或8个字节,取决于集合成员数(最多64人),1-8为1字节,2字节为9-16,17 17字节,字节字节和17-24。
整数类型:
Tinyint(8),一个字节
SmallInt(16),2字节
MEDIUMINT(24),3字节
int(32),4字节
bigint(64),8字节
实数类型:
浮(4bytes)
浮点(M,D)单精度浮点型,精确到小数点后6位,双精度双(m,D)到小数点的13位精确结束;
如何存储浮点存储器
类型
位存储
数字总数
偏移值
数字(s)
订单代码(e)
M
(偏移)
短实数(浮点数)
一
八
二十三
三十二
一百二十七
长实数(双)
一
十一
五十二
六十四
一千零二十三
如何浮店
n(10)=123.456,
转换为二进制表示:
n(2)=1111011。01110100101111001
= 1。11101101110100101111001(…)×2 ^ 6
然后E = 127 + 6 = 133(10)= 10000101(2)
M = 111011011101001011 1001(省略最多1位,共23bit)
组合是:
S E M
0100001011110110 1110100101111001
整数类型:
十进制(m,D)代表m + 2字节、小数点和符号需要。
它们各自占一个字节。
十进制的可能值的最大值与双字节的最大值相同。
但有效值范围是由m和d的值决定的。
这条路就是绳子;
十进制(M,D)代表M + 2字节,小数点和符号需要解释一个字节;
十进制可能值的最大值范围与双值相同,但其有效范围是由m和d的值决定的,而保存的方式是一个字符串;