MySQL索引到底支援多少位元組?
那麼我們來看一下MySQL varchar型別的索引到底能盛多少位元組的東西。
MySQL的varchar索引只支援不超過768個位元組
atin1 = 1 byte = 1 character
uft8 = 3 byte = 1 character
gbk = 2 byte = 1 character
uft8 = 3 byte = 1 character
gbk = 2 byte = 1 character
如果是GBK,也就是雙位元組,那麼這個索引能盛768/2=384位元組。
如果建立一個大欄位的索引的時候就需要注意這些,否則就會報錯,如下:
mysql> create index sql_q on slow_log(sql_md5,sql_info);
ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes
mysql>
這種情況就可以使用字首索引來解決這個問題:
alter table XXX add index ind_contentl(content(100)) //100 或其它的數
MySQL 5.5 之前, UTF8 編碼只支援1-3個位元組
從MYSQL5.5開始,可支援4個位元組UTF編碼utf8mb4,一個字元最多能有4位元組,utf8mb4相容utf8,所以能支援更多的字符集。
單列索引限制767,起因是256×3-1。這個3是字元最大佔用空間(utf8)。
5.5以後,開始支援4個位元組的utf8。255×4>767, 於是增加了一個引數叫做 innodb_large_prefix。
這個引數預設值是OFF。當改為ON時,允許列索引最大達到3072。
但是開啟該引數後還需要開啟表的動態儲存或壓縮:
Enable this option to allow index key prefixes longer than 767 bytes (up to 3072 bytes) for InnoDB tables that use DYNAMIC or COMPRESSED row format. (Creating such tables also requires the option values innodb_file_format=barracuda and innodb_file_per_table=true.) See Section 14.8.1.7, “Limits on InnoDB Tables” for maximums associated with index key prefixes under various settings.
相關文章
- Java中boolean到底佔幾位元組?JavaBoolean
- Java陣列物件佔用多少個位元組?Java陣列物件
- JAVA——一個漢字佔用多少位元組?Java
- mysql組合索引,abc索引命中MySql索引
- mysql的組合索引MySql索引
- MySQL 組合索引不生效MySql索引
- mysql一張表到底能存多少資料?MySql
- MySQL 資料庫 到底能支撐多少表?MySql資料庫
- mysql 支援索引字元超過 767MySql索引字元
- MySQL學習筆記:組合索引-索引下推MySql筆記索引
- MySQL單列索引和組合索引的區別MySql索引
- Mysql索引的使用-組合索引+跳躍條件MySql索引
- Java 17到底快了多少?Java
- 位元組流
- MySQL單列索引和組合索引的區別介紹MySql索引
- Object o = new Object()佔多少個位元組?-物件的記憶體佈局Object物件記憶體
- MySQL的B+Tree索引到底是咋回事?聚簇索引到底是如何長高的?MySql索引
- mysql中文進行全文索引支援問題MySql索引
- Mysql索引的使用 - 組合索引 + 範圍條件的處理MySql索引
- Java 位元組碼Java
- 理解位元組序
- 位元組對齊
- 位元組碼指令
- MySQL組合索引和最左匹配原則MySql索引
- 卷向位元組碼-Java異常到底是怎麼被處理的?Java
- 【C/C++】5.位元組對齊和位元組填充C++
- main函式你到底知道多少AI函式
- INNODB 到底能存放多少資料?
- 位元組跳動近日申請多個“位元組遊戲”商標遊戲
- .NET刪除位元組陣列中的0位元組陣列
- 通過oracle類比MySQL中的位元組字元問題OracleMySql字元
- MySQL學習筆記:組合索引-最左原則MySql筆記索引
- MYSQL INNODB 組合索引分支節點資料解析MySql索引
- 位元組碼基礎
- JS 位元組流 解析JS
- 位元組陣列流陣列
- 位元組碼詳解
- golang 位元組對齊Golang