列顺序占用存储大小的影响 in Oracle、MySQL、PostGreSQL
在创建表时,如果相同的列类型,不同表列的顺序是否会影响数据库占用空间大小?使用oracle、mysql或postgresql是不是相同的表现呢? 不是的Postgresql近期发现空间使用会因为columns的顺序而占用不同的大小,当然也和实际的数据有关,简单的测试。
Oracle
SQL> CREATE TABLE t_test ( i1 int,
i2 int,
i3 int,
v1 varchar(100),
v2 varchar(100),
v3 varchar(100)
7 );
Table created.
INSERT INTO t_test SELECT 10, 20, 30,
'abcd', 'abcd', 'abcd'
3 FROM dual connect by rownum<=10000; 10000 rows created.
SQL> select BYTES from dba_segments where segment_name='T_TEST';
BYTES
----------
393216
SQL> SELECT dbms_xplan.FORMAT_SIZE(BYTES) SEG_SIZE from dba_segments where segment_name='T_TEST';
SEG_SIZE
------------------------------
384K
SQL> DROP TABLE T_TEST;
Table dropped.
SQL> CREATE TABLE t_test ( v1 varchar(100),
i1 int,
v2 varchar(100),
i2 int,
v3 varchar(100),
i3 int
7 );
Table created.
SQL> INSERT INTO t_test SELECT 'abcd', 10, 'abcd',
20, 'abcd', 30
3 FROM dual connect by rownum<=10000; SQL> select BYTES from dba_segments where segment_name='T_TEST'