MySQL 中 VARCHAR 和 CHAR 的區別

Preet Sanghavi 2022年5月13日
MySQL 中 VARCHAR 和 CHAR 的區別

本教程將介紹 MySQL 中 varcharchar 之間的區別。

每個部分的一些關鍵點如下。

CHAR

  • CHAR 是一種支援字串的固定空間資料型別。
  • 文字或字串中的空白或剩餘空格用空格或空格替換。
  • CHAR 對輸入字串或文字中的每個字元采用一個位元組大小。
  • 因此,我們可以說,如果我們定義 CHAR(100),無論字串長度或字元數是多少,它將保持 100 位的大小。

VARCHAR(M)

  • VARCHAR 具有最多 65535 個字元的可編輯大小。使用者必須指定 1 到 65535 個字元之間的長度。
  • 此外,VARCHAR 在字元總數小於或等於 255 的磁碟中佔用 x + 1 位元組空間。並且在字元總數小於或等於 255 的磁碟中佔用 x + 2 位元組空間 of characters 大於或等於 256 個字元且小於等於 65535 個字元。
  • 最後,VARCHAR 可以是索引的一部分。

因此,我們可以總結出關鍵的區別:varchar 不是固定長度,而 char 是固定長度或固定大小。

實際上,我們可以假設使用 varchar 比使用 char 資料型別更好。這種假設背後的原因是使用 varchar 資料型別可以節省大量空間。

讓我們看一個例子來實現 varchar 的優勢。

假設我們將一個 char 定義為 char(25) 並將字串值儲存為 Preet。另一方面,讓我們定義另一列,其資料型別為 varchar,一個字串值為 Preet

即使這些具有不同資料型別的列具有值 Preetvarchar 將僅消耗 5 位,而 char 將消耗整個 25 個預定義位大小。剩餘的空白空間用 char 空白填充。

varchar 的這種優勢在儲存是一個大問題的生產環境中可能是巨大的。此外,如果我們使用 varchar,我們不需要擔心我們的字串大小超過預定義的位值。

Preet Sanghavi avatar Preet Sanghavi avatar

Preet writes his thoughts about programming in a simplified manner to help others learn better. With thorough research, his articles offer descriptive and easy to understand solutions.

LinkedIn GitHub