關於mysql varchar類型的長度


char

定長  最多255字符  末尾的空格會被默認刪除

何時選用char類型儲存?

1 數據長度近似 如手機號 身份證 MD5加密后的值

2 短字符串 相對varchar可以節約一個儲存長度的空間

3 頻繁更新的字段  相對於varchar不會產生長度變化也就不會產生存儲碎片

 

varchar

varchar類型與char類型不同 為變長字符串

在字符長度不超過255時 使用一個字節存儲長度

超過255時用兩個字節存儲長度

每行的varchar總和不得超過65535字節 如果想存儲更長的字符串建議選用text格式

既然varchar是變長的 而且不超過255字符時都是用一個字節來存儲長度 那么是不是意味着varchar(4) 與varchar(100) 在存儲四個字符長度的內容 比如 "abcd"時是完全一樣的呢?

  mysql在查詢時對於varchar字段在內存中是采用固定寬度而不是儲存時的變長寬度 尤其是查詢時創建的隱形臨時表 所以在選擇字段屬性時還是適可而止 根據自己的業務來選擇最合適的並且最小的長度 從而來提高查詢速度 減少數據庫服務器的開銷

 

何時選用varchar列來儲存?

1 字符串列最大長度比平均長度大很多的列  充分發揮變長的特點

2 字符串列較少被更新的列  因為innodb引擎一個存儲頁為16k 頻繁的更新變長字段可能導致存儲頁的分裂 產生存儲碎片 

3 多字節字符集 如utf-8 


免責聲明!

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



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