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