在得知 MySQL 引入了 UTF8MB4 數據類型后,不禁發問:如果我使用了 UTF8MB4,但在其中僅存儲了幾個字母(例如:“abc”),這些字母在存儲時將占用 3 個字節還是 12 個字節?
答案:
UTF8MB4 是一種變長存儲字符集。“MB”表示“Most Bytes”,即“最多字節”。這表明 UTF8MB4 字符集使用可變數量的字節來存儲字符,具體取決于字符的編碼。
對于包含在基本多語言平面上(BMP)的字符(即大多數常見語言中的常見字符),UTF8MB4 和 UTF8MB3 使用相同的存儲方式,即使用 1 到 3 個字節。但是,對于超出 BMP 范圍的字符(即補充字符),UTF8MB4 則需要 4 個字節來存儲,而 UTF8MB3 無法存儲這種字符。
因此,“abc”三個字母在 UTF8MB4 中將占用 3 個字節,而不是 12 個字節。