關於一表很多列的總結
關於一表很多列的總結
在ITPIB上遇見一個表有900多列的例子,自己在以前也看到曾經有人這樣做過,以下就這個問題做一個總結吧。
http://www.itpub.net/showthread.php?s=&threadid=829101&perpage=10&pagenumber=3
問題
一個有920列的表算列比較多的表嗎? oracle10g中我們的一個表有920列,其它幾個表有700多列,主要是插入,沒有更新。 插和讀比較多,表的儲存是按照日期來分割槽的。但是所有的這些表都在一個表空間上。 只是不知道920多列是否算多,對應資料庫的效能影響大嗎? |
關於這樣做的好處:我不清楚在的資料庫在設計階段為什麼要設計這麼大的表,應該有自己的考慮,但是拋開他們的這些考慮,這樣做的好處無外乎有以下好處:
1、一個行能夠容納所有的資料。
2、設計簡單
3、程式設計師程式設計方便
4、以後維護方便
5、減少表表之間的連結
但是實際的系統執行中,由於你這樣的設計會給系統帶來很多問題,其中就包括效能問題:
1、由於你將一個表設計的過為複雜,在查詢的時候需要建立多各索引才能滿足你的需要,索引過多引起的效能問題
2、表的列過多,你選擇一行資料的時候往往並不是所有列的資料都需要,但是這些資料都存在一個塊中,既是你不需要,但是系統還是會將那些資料提取出來,這樣就會造成過多的IO,邏輯讀和物理讀
3、可能造成過多的行連線或者行遷移,也會影響系統效能
另外,oracle是可以提供超過1000列的資料,但是在Oracle的資料塊的存放中資料的存放是有一個位元組來標識這哥列是第幾個列,也就是說一個位元組只能表示255個列,但是如果一個表有多餘255列是如何實現的哪?Oracle是透過連結列的形式存在的,這些也給oracle的處理帶來一定的負擔,所以從Oracle的實現上來說,將呢的列控制在256之內是一個選擇。
4、在好處有程式設計師程式設計方便的好處,但是這些多的列,程式設計師寫出來應該是比較辛苦的,呵呵
有幾種方式來實現這種需求的設計:
1、主從表的方式
你可以根據業務的需要出發,將這個表分成一個主表,多個從表的形式,主從之間使用唯一外來鍵進行刪除接連。這樣的好處就是可以避免一些弊端。
2、使用縱相設計的方式實現
例如表有列c1,c2......c1000可以實現為:
col,col_values兩個列的形式來實現。
這樣有好處就是可以動態新增自己所需要的列,實現起來很靈活,方便
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/222350/viewspace-932493/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 關於 Android 狀態列的適配總結Android
- 關於 FormData 物件陣列傳值總結ORM物件陣列
- 關於ES5陣列方法總結陣列
- 關於近期的總結
- mysql關於variable的總結MySql
- sqlserver關於always on的總結SQLServer
- 關於 JOIN 耐心總結,學不會你打我係列
- sqlserver 關於DBCC CHECKDB的總結SQLServer
- sqlserver關於mirror映象的總結SQLServer
- 關於golang的time包總結Golang
- 關於Servlet小總結Servlet
- java Queue佇列相關總結Java佇列
- mysql關於mysqld_safe的總結MySql
- mysql關於mysql.server的總結MySqlServer
- 關於PaaS的純乾貨總結
- mysql關於表空間的總結MySql
- 關於Android Studio使用Git的總結AndroidGit
- 關於STL容器的簡單總結
- SqlServer關於分割槽表的總結SQLServer
- postgresql關於許可權的總結SQL
- sqlserver always on關於備份的總結SQLServer
- 關於Map集合的遍歷總結
- C中關於堆疊的總結
- mysql關於臨時表的總結MySql
- Android 關於 so 檔案的總結Android
- 關於git的基本核心操作總結Git
- 關於資料庫鎖的總結資料庫
- mysql關於memory引擎的表的總結MySql
- 關於vue基礎總結Vue
- 關於資料抓取很多新人的誤區
- 關於題目集1~3的總結
- 關於Vue中插槽的理解和總結Vue
- 關於Mysql使用的一些總結MySql
- 關於v-for的一點小總結
- 關於題目集7~8的總結
- MySql關於鎖的一些總結MySql
- 關於linux下system()函式的總結Linux函式
- 紅寶書總結-js陣列的相關方法JS陣列
- 關於Webservice介面對接相關總結Web