修改Mysql索引長度限制解決767?byte限制問題
報錯
Specified key was too long; max key length is 767 bytes
原因
msyql5.6及以前版本, 默認(rèn)索引最大長度767bytes
若使用utf8mb4格式編碼(utf8字符占用3字節(jié),utf8mb4字符占用4字節(jié))
則單個字段長度不能超過191
5.7及之后版本, 限制放開到3072 bytes
解決方案
一、將數(shù)據(jù)庫版本升級到5.7版本或以上
二、修改相關(guān)配置,增加操作以解決
解決方案如下:
- 1、在my.ini中修改配置:
innodb_large_prefix = ON innodb_file_format = Barracuda innodb_file_per_table = ON
- 2、在create中添加row_format=dynamic
create table sql_test( id int , name VARCHAR(200), server_id VARCHAR(30), id_num1 VARCHAR(30), id_num2 VARCHAR(30), link VARCHAR(500), PRIMARY KEY (id), KEY sql_test_name (name)) engine=innodb row_format=dynamic;
這樣做的缺點
會造成查詢性能下降
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
SELECT INTO 和 INSERT INTO SELECT 兩種表復(fù)制語句詳解(SQL數(shù)據(jù)庫和Oracle數(shù)據(jù)庫的
我們經(jīng)常會遇到需要表復(fù)制的情況,如將一個table1的數(shù)據(jù)的部分字段復(fù)制到table2中,或者將整個table1復(fù)制到table2中,這時候我們就要使用SELECT INTO 和 INSERT INTO SELECT 表復(fù)制語句了2019-03-03Mysql優(yōu)化之Zabbix分區(qū)優(yōu)化
這篇文章主要介紹了Mysql優(yōu)化中Zabbix分區(qū)優(yōu)化的詳細(xì)方法和優(yōu)缺點分析,一起學(xué)習(xí)下。2017-11-11MySQL中的binlog相關(guān)命令和恢復(fù)技巧
這篇文章主要介紹了MySQL中的binlog相關(guān)命令和恢復(fù)技巧,需要的朋友可以參考下2014-05-05MySql如何實現(xiàn)遠(yuǎn)程登錄MySql數(shù)據(jù)庫過程解析
這篇文章主要介紹了MySql如何實現(xiàn)遠(yuǎn)程登錄MySql數(shù)據(jù)庫過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08MySQL5.6升級5.7時出現(xiàn)主從延遲問題排查過程
這篇文章主要介紹了MySQL5.6升級5.7時出現(xiàn)主從延遲問題排查過程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09