char 與 varchar
char 和 varchar 型別相似,都用來儲存字串,但它們儲存和檢索的方式不同。
char 屬於固定長度的字元型別
varchar屬於可變長度的字元型別
由於char是固定長度的,所以它的處理速度比varchar快得多,但也更浪費儲存空間。
text與blob
(1)blob與text都會引起一些效能問題,尤其是執行大量刪除操作時。
為了提高效能,可以使用 optimize table ; 在執行delete操作之後,整理資料庫的儲存空間。
(2)可以使用合成的(synthetic)索引來提高大文字字段(blob或text)的查詢效能。
簡單說,其實就是另起乙個字段,儲存大文字的hash值,並且為這個hash值新增索引,在查詢大文字的時候,改為查詢hash值的形式。
(3)在不必要的情況,避免查詢大型的text 和 blob值
(4)把blob 或 text 分離到單獨的表中,可以減少單次查詢傳輸的資料量,使查詢更高效。
浮點數與定點數
當乙個浮點數插入值的精確度超過資料庫中定義的精確度時,該插入值會被四捨五入,而且不會報錯,這個在一些對資料要求高的系統中會容易被忽略。
定點數則不同,實際上定點數是以字串形式存放,所以可以更精確地儲存資料。
日期型別的選擇
mysql提供常用的日期型別有
date、time、datetime、timestamp,下面簡單說一下各自的區別
日期和時間型別
位元組最小值
最大值date
41000-01-01
9999-12-31
datetime
81000-01-01 00:00:00
9999-12-31 23:59:59
timestamp
419700101080001
2023年的某乙個時刻
time
3-838:59:59
838::59:59
year
11901
2155
下面再簡單說一下使用原則
(1)根據實際需要選擇能夠滿足引用的最小儲存日期型別。
(2)如果記錄年月日時分秒,並且記錄時間比較長遠,那麼優先用datetime,因為datetime的時間比較長。
(3)如果日期需要不同時區使用,那最好用timestamp。
MYSQL 常見資料型別
一 數值整形型別 型別位元組 最小值最大值 帶符號 無符號 帶符號 無符號 tinyint 1 1位元組 8 bit 128 1270 2 8 256 轉為二進位制,包括0 smallint 2 2 8 bit 32768 32767 02 2 8 65535 mediumiint 3 3 8 bi...
Mysql常見資料型別
資料型別 儲存範圍 位元組tinyint 有符號值 128到127 2 7到2 7 1 1smallint 有符號值 32768到32767 2 15到2 15 1 2mediumint 有符號值 8388608到8388607 2 23到2 23 1 3int 有符號值 2147483648到21...
MySQL常見資料型別
常見資料型別 數值型 整型 小數 定點數浮點數 字元型 較短的文字 char varchar 較長的文字 text blob 較長的二進位制資料 日期型 一 整型 整數型別 位元組 範圍 tinyint 1 smallint 2 mediumint 3 int integer 4 bigint 8 ...