回覆列表
  • 1 # lanfengz3

    可能佔。

    陣列儲存在表中的一行是這種形式

    rowid | 列1資訊(型別,長度),列1資料 | 列2資訊,列2 資料 | …………

    當為null的欄位在一條記錄的最後,就是說他後邊沒有非null的欄位值時,是不佔空間的

    當為null的欄位在一條記錄的中間,就是說他後邊還有非null的欄位值時,他佔一個位元組

    所以oracle建議在設計表結構時儘量把可空的欄位放到最後!

    補充:

    對於資料庫中的一條資料,應該算是橫排,

    rowid | 列1資訊(型別,長度),列1資料 | 列2資訊,列2 資料 | …………

    也就是列1都可能為空,那你就在建表的時候儘量把它放到最後一個欄位。

    讓資料變成這樣。。

    rowid | 列2資訊,列2 資料 | …………| 列1資訊(型別,長度),列1資料

    對了,我上面列出來的不是你所看到,而是資料在DB中的實際儲存的結構。

    你看到的,應該是:

    列1資料 | 列2 資料 | …………

    列2 資料 | …………| 列1資料

    總結下:null資料它本身不佔空間,但是如果null這個欄位在一行資料的中間時,它需要維護沒行資料的結構統一 ,需要佔用一點空間。

    神啊,夠詳細了吧?

  • 中秋節和大豐收的關聯?
  • 企業劃分標準兩個條件只滿足一個如何劃分?