mysql中的char,varvhar以及text型別一直是需要被搞清楚的一回事,他們之間的大致的區別在網上都有。
我查了以後發現對於varchar,網上說的是最大長度為65535個位元組(網上說mysql5.0.3之後才有,5.0.3之前varchar的最大值並沒有那麼大,這個說法我並沒有去求證),於是我試了下,結果發現直接把varchar的最大值調到65535是不行的,還需要考慮兩個規則:
1.65535個位元組指的是一行記錄的最大位元組數,並不是乙個欄位的最大位元組數。
2.mysql在儲存每個varchar型別的字段資料時有1-2個位元組用於記錄該欄位儲存的位元組數,以及當表字段允許有空值時,還需要乙個位元組由於記錄每一行資料的空值。
什麼意思呢?舉個栗子來說如果你想建立乙個單字段的表,字段資料型別為varchar,並且是非空的,那麼你最大可以把varchar值調到65533。因為每行記錄沒有空值,即不需要1個位元組來記錄空值分布,但是每行記錄有1個字段,該欄位需要2個位元組記錄資料儲存量(255位元組一下是1個位元組儲存,超過255需要2個位元組儲存)。所以這麼算下來,varchar最大可以65533,截圖如下:
這個栗子變一下:要是你想建立乙個單字段的表,字段資料型別為varchar,但是是允許為空的,那麼varchar最大值只能調到65532了,不多解釋,不信你try。好吧,我還是附上圖吧:
這個栗子再變一下:要是你想建立乙個3個字段的表,每個字段資料型別為varchar,並且都是非空的,其中兩個欄位的varchar值設為20,那麼第三個欄位的varchar最大可以設為多少?(因為65535-(20+1)-(20+1)=65493>255,所以最大值=65493-2=65491個位元組)
證明如下:
好吧,栗子就舉到這了。總的規則就是上面提到的兩條。
mysql varchar最大的長度
a 儲存限制 varchar 欄位是將實際內容單獨儲存在聚簇索引之外,內容開頭用1到2個位元組表示實際長度 長度超過255時需要2個位元組 因此最大長度不能超過65535 2的16次方 1 b 編碼長度限制 字元型別若為gbk,每個字元最多佔2個位元組,最大長度不能超過32766 字元型別若為utf...
Token Cookie Session的認識了解
token token的意思是 令牌 是使用者身份的驗證方式,最簡單的token組成 uid 使用者唯一的身份標識 time 當前時間的時間戳 sign 簽名,由token的前幾位 雜湊演算法壓縮成一定長的十六進製制字串,可以防止惡意第三方拼接token請求伺服器 還可以把不變的引數也放進token...
對min max width height的認識
在css世界中,提出了min max weight的應用場景 自適應布局或者是流式布局中才會出現,從最小和最大上面我們知道他們是具有邊界行為的屬性。在現在的pc端開發中,為了適應各種不同解析度的顯示屏,min max width就會起到很關鍵的作用。應用場景 下面列舉乙個自己遇到的小情況 電腦解析度...