在這邊我想請教各位先進一個問題,我想以MySQL來舉例好了
一般來說我習慣建立一個欄位叫id,預設是INT(11),且是自動增加的欄位當主鍵
在MySQL中,INT佔用4Bytes,TINYINT佔用
也就是說就算id只有1~10,這每筆資料光是id這欄位就每個佔了4Bytes是嗎?
有時候某些應用程式不需要用到INT可以用到TINYINT的,卻因為被刪除掉的id不能重新新增(因為沒有紀錄)回去,所以那個欄位一直空著。
如果說今天我確定使用者人數不會超過TINYINT的範圍,卻因為資料可能有人刪除後又新增,這樣id數會一直累加累加,直到TINYINT裝不下為止,這樣的話,我又得把欄位改為INT
然後同樣的事情又發生在INT上,然後不得不改為BIGINT
我真的覺得這樣很浪費容量(畢竟BIGINT佔用8 Bytes...)
所以我的想法是用另外一個表儲存被刪除掉的id值,然後當資料要新增時從中挑選一個id來新增,重複使用空間,然後再刪除表內那個id
不知道這樣可不可行?
▼ ADVERTISEMENT ▼
-
‧
-
‧
-
‧
相關問答
- MYSQL 亂碼問題
- Qt 的 MySQL 驅動程式
- 請問windows應用程式與web應用程式,有何不同(設計上,介面上,操作上,資料庫等等)?
- MySQL的備份策略?
- 用web程式,從sqlserver裡select資料的動作,能夠指定終止嗎??
- 昇陽併購MySQL後,對開放源始碼會什麼影響?
- AutoCAD 或 OrCAD 可以利用任何座標資料庫或座標資料輸入來產生圖檔嗎?
- mysql的表类型有myisam,innodb,bdb,如何查看一个表是属于何种类型?
- Microsoft Visual Studio 2005 C++ 要如何撰寫於資料庫應用程式開發
- MySQL將推出有技術支援的企業版本,大家會考慮付費使用嗎?
- extjs: 使用JsonStore & .Net Web Service讀取資料庫
- .Net DataTable 大量資料壓縮加密實測
- 買一台Web Server要注意什麼?
- 想從事系統分析,但是對路的方向茫茫,請前輩給點建議
- windows storage server 2003 R2如何做到遠端備援?
- 透過ADO.NET呼叫預存程序,並使用Form-Based登入驗證
- AutoCAD國際認證
- 網頁該如何設計呢?
- 程式設計師是否須具備資安人員的相關知識?
- Data Mining 的基楚入門?









