一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

MySQL5.6建索引時遇到 Specified key was too long; max key length is 767 bytes錯誤提示解決辦法

 極風(fēng)狼 2024-01-09 發(fā)布于海南

一、錯誤提示

Specified key was too long; max key length is 767 bytes;

二、原因分析

在數(shù)據(jù)庫中,索引的字段設(shè)置太長了,導(dǎo)致不支持。【根本原因:5.6版本的innodb大長度前綴默認是關(guān)閉的】。

mysql建立索引時,數(shù)據(jù)庫計算key的長度是累加所有index用到的字段的char長度,在按照下面的比例乘起來

不能超過限定的key長度767:

latin1 = 1 byte = 1 character

uft8 = 3 byte = 1 character

utf8mb4 = 4byte = 1character

gbk = 2 byte = 1 character

做個實驗:

CREATE TABLE `xxl_job_registry` (`id` int(11) NOT NULL AUTO_INCREMENT,`registry_group` varchar(50) NOT NULL,`registry_key` varchar(190) NOT NULL,`registry_value` varchar(250) NOT NULL,`update_time` datetime DEFAULT NULL,PRIMARY KEY (`id`),KEY `i_g_k_v` (`registry_key`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;registry_key 190 * 4 = 760因此創(chuàng)建成功若將registry_key的字節(jié)數(shù)改成192,則195 * 4 = 780 則創(chuàng)建不成功

注意

網(wǎng)上說,如果是聯(lián)合索引的話,應(yīng)該是兩個索引的字節(jié)加起來,然后折算成字節(jié)數(shù)。例如:

CREATE TABLE `xxl_job_registry` (`id` int(11) NOT NULL AUTO_INCREMENT,`registry_group` varchar(50) NOT NULL,`registry_key` varchar(190) NOT NULL,`registry_value` varchar(110) NOT NULL,`update_time` datetime DEFAULT NULL,PRIMARY KEY (`id`),KEY `i_g_k_v` (`registry_key`, `registry_value`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;那么索引需要的字節(jié)數(shù)是:(190 + 110) * 4 = 1200創(chuàng)建不成功但是實際上呢,是能創(chuàng)建成功。在創(chuàng)建索引的時候進行了優(yōu)化,取字節(jié)數(shù)最長的那個 190 * 4 = 760因此能創(chuàng)建成功。

三、解決方法

1、第一種解決方法

修改索引的varchar字符,只要讓字符 * 字節(jié)數(shù) < 767即可,所以網(wǎng)上推薦 縮小字符數(shù)

但是有時某個字段的字符數(shù)是一定要足夠大的,這時候用第二種方式。

2、第二種解決方法

// 查看show variables like "innodb_large_prefix";show variables like "innodb_file_format";//修改最大索引長度限制set global innodb_large_prefix=1;或set global innodb_large_prefix=on;set global innodb_file_format=BARRACUDA;

修改插入sql的語句添加ROW_FORMAT=DYNAMIC;

create table idx_length_test_02(id int auto_increment primary key,name varchar(255))ROW_FORMAT=DYNAMIC ENGINE=InnoDB default charset utf8mb4;

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    日本熟女中文字幕一区| 国产日韩在线一二三区| 亚洲欧美日韩在线看片| 日韩av欧美中文字幕| 老熟妇乱视频一区二区| 日本 一区二区 在线| 精品亚洲香蕉久久综合网| 亚洲精品av少妇在线观看| 99国产成人免费一区二区| 亚洲中文字幕视频在线观看| 亚洲一区二区三区三区| 国产精品视频第一第二区| 高中女厕偷拍一区二区三区| 后入美臀少妇一区二区| 日韩欧美高清国内精品| 国产又长又粗又爽免费视频| 欧美一区日韩一区日韩一区| 在线观看免费无遮挡大尺度视频| 91欧美日韩精品在线| 欧美精品一区二区水蜜桃| 日韩中文无线码在线视频| 国产精品一区二区三区欧美| 色婷婷日本视频在线观看| 国产精品一区欧美二区| 久久成人国产欧美精品一区二区 | 国产日本欧美韩国在线| 一级欧美一级欧美在线播| 99久久国产精品免费| 国产精品久久久久久久久久久痴汉 | 亚洲av日韩av高潮无打码| 日韩欧美精品一区二区三区| 国产成人午夜av一区二区| 国产色偷丝袜麻豆亚洲| 日韩一级一片内射视频4k| 国产又黄又猛又粗又爽的片| 亚洲高清欧美中文字幕| 丝袜诱惑一区二区三区| 国内外免费在线激情视频| 真实偷拍一区二区免费视频| 富婆又大又白又丰满又紧又硬 | 国产精品久久香蕉国产线|