前段时间,有人问我, 有一个关于Oracle中表字段顺序调整的问题。首先这样做对于数据库有没有坏的影响,其次有没有比较简单的方法或者工具可以解决这个问题。
其实这个问题,对于大多数关系型DBMS,也都很常见。
调整字段顺序,看你往什么方向调整。
基本思路是:在数据量少的情况下,调整都比较快。数据量大,一般倾向于先建新表,入数据,再删旧表。
理想的字段顺序是:
- 简单的,短值字段在前,复杂的,非结构化的长值字段在后(如BLOB字段通常放到最后)。
- 定长字段在前,不定长字段在后
- 带索引的字段在前,不带索引的字段在后。
- 常读取的字段在前,不常读取的字段在后。
- 主键字段在前,非主键字段在后。
- 复合主键字段顺序与表中字段顺序一致。
而对NoSQL DB而言,反而没什么影响,因为它们大都基于键值对来存储的。
<script type="text/javascript"><!-- google_ad_client = "ca-pub-7104628658411459"; /* wide1 */ google_ad_slot = "8564482570"; google_ad_width = 728; google_ad_height = 90; //--></script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>