mysql的varchar和text區別


  varchar 和 text 均可存儲可變長度字符 65535,但是 varchar 存的位置是在數據行內,text 存儲在數據行外。

 

  不同字符集的數據庫或表,其 varchar 的字段的長度是不固定的,雖然 varchar 可存 65535個字節,但是在 utf8 的表,其 varchar 最多 21845 字符長,因為一個文字需要 3個字節,在utf8mb4格式中,其最多可存儲 16383 字符長,因為一個文字需要 4 個字符。並且其還會有一個兩個的長度用於存長度,所以在理論的基礎上需要減1或2或3。

  text 也是可存 65535 字符。


  在UTF8狀態下longtext: 4294967295/3=1431655765個漢字,約14億,存儲空間占用:4294967295/1024/1024/1024=4G的數據;
  在UTF8狀態下mediumtext: 16777215/3=5592405個漢字,約560萬,存儲空間占用:16777215/1024/1024=16M的數據;
  在UTF8狀態下text: 65535/3=21845個漢字,約20000,存儲空間占用:65535/1024=64K的數據;

 

  在使用UTF8字符集的時候,MySQL手冊上是這樣描述的:

  • 基本拉丁字母、數字和標點符號使用一個字節;
  • 大多數的歐洲和中東手寫字母適合兩個字節序列:擴展的拉丁字母(包括發音符號、長音符號、重音符號、低音符號和其它音符)、西里爾字母、希臘語、亞美尼亞語、希伯來語、阿拉伯語、敘利亞語和其它語言;
  • 韓語、中文和日本象形文字使用三個字節序列。

   GBK編碼: 一個漢字 = 2個字節,英文是一個字節


免責聲明!

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



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