- 更小的通常更好
- 简单就好
- 尽量避免null
一、整数类型
有两种类型的数字 :整数和实数。如果存储整数,可以使用这几种整数类型:TINYINT,SMALLINT,DEDIUMINT,INT,BIGINT.分别使用8,16,24,32,64位存储空间。
使用UNSIGNED属性,表示不允许复制,这大致可以例正数的上限提高一倍。
二、实数类型
实数是带有小数部分的数字。然而,它们 不只是为了存储小数部分;也可以使用DECIMAL存储比BIGINT还大的整数。MySQL既支持精确类型,也支持不精确类型。
DECIMAL类型用于存储精确的小数。因为需要额外的空间和计算开销,所以应该尽量只在对小数进行精确计算时才使用DECIMAL--例如存储财务数据。但在数量比较大的时候,可以考虑使用BIGINT代替DECIMAL,将需要存储的货币单位根据小数的位数乘以相应的倍数即可。假设要存储财务数据精确到万分之一分,则可以反所有金额乘以一百万,然后将结果存储在BIGINT里这样可以同时避免浮点计算不精确和DECIMAL精确计算代价高的问题。
三、字符串类型
VARCHAR和CHAR是两种最主要的字符串类型。
VARCHAR类型用于存储可变长字符串,如果MySQL表使用了ROW_FORMAT=FIXED创建的话,每一行都会使用定长存储,这会很浪费空间。VARCHAR需要使用1或2个额外的字节记录字条串的长度
CHAR类型是定长,CHAR适合存储很短的字符串,或者所有值都接近同一个长度。比如MD5值,因为这是一个定长的值。
对于经常变更的数据,CHAR也比VARCHAR更好,因为定长的CHAR 类型不容易产生碎片。
慷慨是不明知的:
时间: 2024-11-08 19:16:09