计算一条数据占用物理空间多少可以大体如下计算:
统计表的所有字段分别按字段大小计算:常用的char()括号里数字多少就站多少B,varchar2()实际存储几位就占几B,括号内位最大值,
DATE类型存储为7个字节,TIMESTAMP存储为11个字节。
number比较复杂 如下:
number:位数(scale),精度(precision)只能用来限定存储范围,不能决定存储的实际空间字节大小。
对于number类型,负号(-)占用1个字节,正号(+)不占字节,小数点占用1个字节,小数点左右两边的数字每2个数字占用1个字节,小数点右边最后的0不占字节,如果小数部分为0,则小数点左边的最后数量为2的倍数的0不占用字节。对于任何number型,都占用一个小数点(即一个字节)。如下:
占用字节统计 | Number(10,2) | Number(10,0) (int,integer) | BINARY_DOUBLE | BINARY_FLOAT (会出现精度不准的情况) | FLOAT(n) N=1,2,8 | Number(float) |
1234 | 3 | 3 | 8 | 4 | 2,3 | 3 |
12340 | 4 | 4 | 8 | 4 | 2,3 | 4 |
123400 | 3 | 3 | 8 | 4 | 2,3 | 3 |
1000000 | 2 | 2 | 8 | 4 | 2,2 | 2 |
1.234 | 3 | 2 | 8 | 4 | 2,3 | 4 |
1.23400 | 3 | 2 | 8 | 4 | 2,3 | 4 |
123400.0012 | 3 | 3 | 8 | 4 | 2,3 | 6 |
-1234 | 4 | 4 | 8 | 4 | 2,4 | 4 |