问题分析
ORACLE 11g 用 exp 命令导出库文件备份时,只能导出来一部分表而且不提示错误。因为 Oracle 11g中有个新特性:新增了一个参数“deferred_segment_creation”,含义是段延迟创建,默认是 true。
如果这个参数设置为 true,新建了一个表 Table1,并且没有向其中插入数据,那么这个表不会立即分配 extent,也就是不占数据空间,即表也不分配 segment 以节省空间,所以这些表不会导出来。
1 | // 默认情况下数据是这样的 |
转自《MySQL如何有效的存储IP地址及字符串IP和数值之间如何转换》
当存储IPv4地址时,应该使用32位的无符号整数(UNSIGNED INT)来存储IP地址,而不是使用字符串。
通常,在保存IPv4地址时,一个IPv4最小需要7个字符,最大需要15个字符,所以,使用VARCHAR(15)
即可。MySQL在保存变长的字符串时,还需要额外的一个字节来保存此字符串的长度。而如果使用无符号整数来存储,只需要4个字节即可。另外还可以使用4个字段分别存储IPv4中的各部分,但是通常这不管是存储空间和查询效率应该都不是很高(可能有的场景适合使用这种方式存储)。
相对字符串存储,使用无符号整数来存储有如下的好处:
使用无符号整数来存储也有缺点:
在需要精确的小数计算时再使用BigDecimal,BigDecimal的性能比double和float差,在处理庞大,复杂的运算时尤为明显。故一般精度的计算没必要使用BigDecimal。
尽量使用参数类型为String的构造函数。
BigDecimal都是不可变的(immutable)的, 在每一次四则运算时,都会产生一个新的对象 ,所以在加减乘除运算时要记得要保存操作后的值。