mysql之char、varchar、text對比


mysql5.0.3以后,n都表示字符數(varchar(n))

  • 檢索效率 char > varchar > text
  • 當varchar長度超過255之后,跟text一致,但是設置varchar(n)的話,可以防止惡意使用text撐爆數據庫
類型名稱 說明 存儲需求
CHAR < M 固定長度非二進制字符串 M字節,1 <= M <= 255
VARCHAR(M) 變長非二進制字符串 L + 1字節,在此,L <= M和1 <= M <= 255
VARCHAR(M) 變長非二進制字符串 L + 2字節,在此,L <= M和255 < M <= 65535
TEXT 小的非二進制字符串 L + 2字節,在此L < 2^16

char

  • 查詢速度:char最快
  • 最大長度:255個字符,utf-8編碼的話,占用255 * 3個字節
  • 占用空間:n
  • 其他:
  1. 在獲取數據出來之后,一定要記得trim空格,因為不足char(n)的長度,會自動填充空格
  2. 因為定長的char不容易產生碎片,所以char比varchar在空間上也更有效率

varchar

  • 查詢速度:varchar次之
  • 最大長度:65535個字節
  • 占用空間:實際空間 + 1,會使用1-3個字節來存儲長度,如果整體長度在0-255bytes之間,長度使用1個字節表示,如果長度在255以上,那么就是2個字節,varchar(10)需要11個存儲空間,varchar(1001)需要1002個存儲空間
  • 其他
  1. 官方手冊定義的varchar最大長度65535指的是所有varchar列長的總和

text

  • 查詢速度:text最慢
  • 最大長度:跟varchar基本相同,保存65535個字符
  • 占用空間:存儲2個字節長度


免責聲明!

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



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