mysql 中欄位型別與寬度的選擇

2022-05-16 09:45:58 字數 963 閱讀 2548

mysql 中 varchar 和varchar 的區別

字段型別與合理的選擇字段型別

注意:int欄位設定寬度也可以設定到int最大容量

之前一直對於mysql的字段型別選擇存在疑惑,int 與 tinyint , int(1) 與 tinyint(1) , varchar 與 char ,varchar(10) 與 char(10) ,分不清楚他們的區別.。

認為 char(10)可以儲存10個字元 varchar (10) 也可以儲存10個字元。那我為什麼不直接使用varchar型別呢?那麼存在char型別的意義又是什麼呢?tinyint 可以儲存 128到127(signed),0到255(unsigned) int也可以儲存 那麼多數字,甚至可以儲存更大的數字,那麼為什麼不直接使用int 而採用 tinyint呢?

字段型別:因為資料庫指定型別,在儲存資料的時候就會占用不同大小的空間,tinyint 占用 1個位元組  int 占用 4個位元組 ,如果乙個字段最大 128 如果採用int型別 那麼資料庫在儲存 搜尋 的時候就會比 tinyint 型別多出三個位元組的空間,資料量小的情況下影響不大,或者說無感,但是當資料量足夠大的時候,就會導致資料庫檔案過大,查詢速度慢的問題。

字段寬度:在指定字段型別之後,可能我們的資料達不到字段型別的最大寬度,也會造成空間浪費,比如儲存md5 32 位字串,如果直接指定char(155),則會導致字段浪費125的寬度,char欄位如果填充不滿指定寬度還會使用0填充,就會使資料庫多儲存125個字元造成儲存空浪費,在查詢的時候也會影響查詢速度.

例:1.欄位型別選擇

儲存整數採用int型別,儲存字串採用char或者varchar型別,【欄位在實際操作用進行選擇,這裡只是舉例】

2.欄位寬選擇

儲存 1-9 的數字 採用 tinyint(1) , 儲存 655360 採用 int(5)

儲存固定32位長度 採用 char(32) , 儲存 1-32 長度的字串 採用 varchar(33)

MySQL中TEXT與BLOB欄位型別的區別

一 型別。blob是乙個二進位製大物件,可以容納可變數量的資料。有4種 blob型別 tinyblob blob mediumblob和longblob。它們只是可容納值的最大長度不同。有4種text型別 tinytext text mediumtext和longtext。這些對應4種blob型別,...

MySQL中TEXT與BLOB欄位型別的區別

這篇文章主要介紹了mysql中text與blob欄位型別的區別,本文總結了6大區別,需要的朋友可以參考下 在mysql中有兩個字段型別容易讓人感覺混淆,那就是text與blob,特別是自己寫部落格程式的博主不知道改為自己的部落格正文本段選擇text還是blob型別。下面給出幾點區別 一 主要差別 t...

MySQL中TEXT與BLOB欄位型別的區別

這篇文章主要介紹了mysql中text與blob欄位型別的區別,本文總結了6大區別,需要的朋友可以參考下 在mysql中有兩個字段型別容易讓人感覺混淆,那就是text與blob,特別是自己寫部落格程式的博主不知道改為自己的部落格正文本段選擇text還是blob型別。下面給出幾點區別 一 主要差別 t...