資料庫如何優化資料型別

2021-10-05 23:49:57 字數 1038 閱讀 3535

應該這樣定義表,它既能儲存所有可能值,同時在磁碟上占用的空間又最小。如果表占用的儲存空間越

小,則:

向磁碟寫入或讀取的資料就越少,查詢起來就越快;

在處理查詢時,磁碟上的內容會被載入到主記憶體中。所以,表越小,占用的主存空間就越小;

被索引占用的空間就越小。

如何操作

如果要儲存員工編號,而其可能的最大值為500000,則最佳資料型別為 mediumint

unsigned(3個位元組)。如果將它儲存為4個位元組的int型別,則每一行都浪費了乙個位元組;

如果要儲存員工名字(first_name),由於其長度不等,可能的最大長度為20個字元,則最好將其

宣告為varchar(20)型別。如果將員工名字儲存為char(20)型別,但是只有幾個人的名字長為20個

字元,其餘的長度不到10個字元,就會浪費10個字元的空間。

在宣告型別為varchar的列時,應該考慮其長度。儘管型別varchar在磁碟上進行了優化,但這個類

型的資料被載入到記憶體時卻會占用全部的長度空間。例如,如果將first_name儲存在型別

varchar(255)中,並且其實際長度為10,則在磁碟上它占用10+1(用於儲存長度的乙個附加字

節)個位元組;但在記憶體中,它會占用全部的255個位元組。

如果型別為varchar列的長度超過255個字元,則需要用2個位元組來儲存長度。

如果不允許儲存空值,則應將列宣告為not null。這樣做就避免了測試每個值是否為空的開銷,

並且還節省了一些儲存空間–每列能節省1位。

如果字串的長度是固定的,請儲存為char而非varchar型別,因為型別varchar需要乙個或兩個

位元組來儲存字串的長度。

如果這些值是固定的,則使用enum而非varchar型別。例如,如果要儲存可能處於等待狀態,或

者已批准、已拒絕、已部署、尚未部署,以及已失效或被刪除的值,則可以使用enum型別。它需

要1或2個位元組即可,不像型別char(10)那樣占用10個位元組。

優先選擇使用整數型別而非字串型別。

嘗試利用字首索引。

資料庫資料型別

一 string型別 1 char n 固定長度,最多8000字元 2 varchar n 可變長度,最多8000字元 3 varchar max 可變長度,最多1073741824字元 4 text 可變長度,最多2gb文字資料 5 nchar 固定長度的unicode,最多4000字元 6 nv...

資料庫資料型別

char varchar text ntext bigint int smallint tinyint 和bit 的區別及資料庫的資料型別 基礎 char varchar text 和nchar nvarchar ntext 的區別1 char char 儲存定長資料很方便,char 欄位上的索引效...

資料庫資料型別

bigint int smallint tinyint decimal,numeric 高精度的小數型別 money,smallmoney 貨幣的資料型別 float,real資料型別 浮點 bit 只能表示0和1 char 後面跟上長度,占用固定位元組,適用範圍更大 varchar 後面也需要跟長...