mysql 中字段類型與寬度的選擇


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)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM