修改Mysql索引長度限制解決767?byte限制問題
報(bào)錯(cuò)
Specified key was too long; max key length is 767 bytes
原因
msyql5.6及以前版本, 默認(rèn)索引最大長度767bytes
若使用utf8mb4格式編碼(utf8字符占用3字節(jié),utf8mb4字符占用4字節(jié))
則單個(gè)字段長度不能超過191
5.7及之后版本, 限制放開到3072 bytes
解決方案
一、將數(shù)據(jù)庫版本升級(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;
這樣做的缺點(diǎn)
會(huì)造成查詢性能下降
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
MySQL錯(cuò)誤1005(errno: 150)的原因分析與解決方案
本文詳細(xì)介紹了MySQL外鍵約束創(chuàng)建失敗錯(cuò)誤1005的原因分析及解決方案,主要包括數(shù)據(jù)類型不匹配、被引用列不是主鍵或唯一鍵、存儲(chǔ)引擎不支持外鍵、數(shù)據(jù)不一致問題和表不存在或列名錯(cuò)誤等五個(gè)方面,需要的朋友可以參考下2025-12-12
MySQL實(shí)時(shí)監(jiān)控工具orztop的使用介紹
這篇文章主要給大家介紹了MySQL實(shí)時(shí)監(jiān)控工具orztop的使用,文中給出了詳細(xì)的介紹,相信對大家的學(xué)習(xí)具有一定的參考借鑒價(jià)值,有需要的朋友可以參考借鑒,下面來一起看看吧。2017-01-01
使用cgroups來限制MySQL企業(yè)備份服務(wù)對資源的占用
這篇文章主要介紹了使用cgroups來限制MySQL企業(yè)備份服務(wù)對資源的占用,以限制mysqlbackup相關(guān)的進(jìn)程和線程對CPU和內(nèi)存的閑時(shí)消耗,需要的朋友可以參考下2015-06-06
MySQL刪除數(shù)據(jù)Delete與Truncate語句使用比較
在MySQL數(shù)據(jù)庫中,DELETE語句和TRUNCATE TABLE語句都可以用來刪除數(shù)據(jù),但是這兩種語句還是有著其區(qū)別的,下文就為您介紹這二者的差別所在2012-09-09
一文弄懂MySQL中redo?log與binlog的區(qū)別
在學(xué)習(xí)mysql數(shù)據(jù)庫時(shí),不可避免要去接觸到redo log和binlog,好多人對這兩者的概念分不太清,下面這篇文章主要給大家介紹了關(guān)于MySQL中redo?log與binlog區(qū)別的相關(guān)資料,需要的朋友可以參考下2022-02-02
mysql-8.0.15-winx64 解壓版安裝教程及退出的三種方式
本文通過圖文并茂的形式給大家介紹了mysql-8.0.15-winx64 解壓版安裝,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-04-04

