最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mysql5.6建立索引報(bào)錯(cuò)1709問題及解決

 更新時(shí)間:2024年03月29日 09:30:36   作者:ReadVersion  
這篇文章主要介紹了mysql5.6建立索引報(bào)錯(cuò)1709問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

現(xiàn)象描述

在給varchar字段建立索引時(shí),報(bào)錯(cuò)如下:

[root@localhost:(test) 13:53:27]> CREATE INDEX b_name_IDX USING BTREE ON test.b(name);ERROR 1709 (HY000): Index column size too large. The maximum column size is 767 bytes.

查看表結(jié)構(gòu):

CREATE TABLE `b` (
  `name` varchar(250) DEFAULT NULL,
  `standardized_name` varchar(250) DEFAULT NULL,
  `is_reagent` int(11) NOT NULL DEFAULT '0',
  `is_solvent` int(11) NOT NULL DEFAULT '0',
  `is_catalyst` int(11) NOT NULL DEFAULT '0',
  `is_ligand` int(11) NOT NULL DEFAULT '0',
  `to_delete` int(11) DEFAULT '0',
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

原因分析

索引字段的長度大于767,或者說,使用到的字段的長度和大于767則報(bào)錯(cuò)。

MySQL 5.6 中的innodb_large_prefix默認(rèn)是關(guān)閉的。

在MySQL中,innodb_large_prefix 參數(shù)是一個(gè) InnoDB 存儲(chǔ)引擎的配置選項(xiàng)。

這個(gè)參數(shù)控制是否允許使用超過767字節(jié)(或255個(gè)字符)的索引前綴。

默認(rèn)情況下,在MySQL 5.6及以前版本中,InnoDB存儲(chǔ)引擎對(duì)索引列的最大長度限制為767字節(jié)。

對(duì)于變長數(shù)據(jù)類型如VARCHAR,這個(gè)限制包括了字符集的每個(gè)字符可能占用的字節(jié)數(shù),而不是僅僅指字符數(shù)。

例如,如果你使用的是UTF-8字符集,每個(gè)字符可能占用1到4個(gè)字節(jié),所以一個(gè)VARCHAR(255)字段的實(shí)際最大長度可能會(huì)遠(yuǎn)小于255個(gè)字符。

當(dāng) innodb_large_prefix 設(shè)置為 ON 時(shí),InnoDB 支持更大的索引前綴長度,最大可以達(dá)到3072字節(jié)。

這意味著你可以創(chuàng)建更長的索引,特別是對(duì)于包含大量變長數(shù)據(jù)類型的列。

這對(duì)于處理大數(shù)據(jù)表和需要更復(fù)雜查詢的情況非常有用。

要啟用 innodb_large_prefix,你可以在 MySQL 配置文件(如 my.cnf 或 my.ini)中添加以下行,并重啟 MySQL 服務(wù)以應(yīng)用更改:

[mysqld]
innodb_large_prefix = ON

或者,你可以在運(yùn)行時(shí)通過設(shè)置全局變量來開啟它:

SET GLOBAL innodb_large_prefix = ON;

請(qǐng)注意,為了使 innodb_large_prefix 生效,還需要同時(shí)滿足以下條件:

  • 數(shù)據(jù)庫文件格式必須是 Barracuda。
  • 表格式必須是 DYNAMIC 或 COMPRESSED。
  • 對(duì)于 ROW_FORMAT=COMPACT 的表,仍然有 767 字節(jié)的索引前綴限制。

有關(guān)這些條件的詳細(xì)信息,請(qǐng)參閱 MySQL 文檔。

問題處理

set global innodb_large_prefix=on;
show variables like 'innodb_large_prefix';
alter table b Row_format=dynamic;
set global innodb_file_format=BARRACUDA;

再次加索引:

[root@localhost:(test) 13:54:18]> CREATE INDEX b_name_IDX USING BTREE ON test.b(name);
Query OK, 0 rows affected (0.06 sec)
Records: 0  Duplicates: 0  Warnings: 0

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • MySQL錯(cuò)誤TIMESTAMP column with CURRENT_TIMESTAMP的解決方法

    MySQL錯(cuò)誤TIMESTAMP column with CURRENT_TIMESTAMP的解決方法

    這篇文章主要介紹了MySQL錯(cuò)誤TIMESTAMP column with CURRENT_TIMESTAMP的解決方法,需要的朋友可以參考下
    2014-06-06
  • Mysql 5.7.19 免安裝版配置方法教程詳解(64位)

    Mysql 5.7.19 免安裝版配置方法教程詳解(64位)

    這篇文章主要介紹了Mysql 5.7.19 免安裝版配置方法教程詳解,需要的朋友可以參考下
    2017-08-08
  • mysql日志文件General_log和Binlog開啟及詳解

    mysql日志文件General_log和Binlog開啟及詳解

    MySQL中的數(shù)據(jù)變化會(huì)體現(xiàn)在上面日志中,下面這篇文章主要給大家介紹了關(guān)于mysql日志文件General_log和Binlog開啟及詳解的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • MySQL的DATE_FORMAT函數(shù)的使用

    MySQL的DATE_FORMAT函數(shù)的使用

    這篇文章主要介紹了MySQL的DATE_FORMAT函數(shù)的使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • 通過實(shí)例解析MySql CURRENT_TIMESTAMP函數(shù)

    通過實(shí)例解析MySql CURRENT_TIMESTAMP函數(shù)

    這篇文章主要介紹了通過實(shí)例解析MySql CURRENT_TIMESTAMP函數(shù),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • MySQL中查詢的有關(guān)英文字母大小寫問題的分析

    MySQL中查詢的有關(guān)英文字母大小寫問題的分析

    這篇文章主要介紹了MySQL中查詢的有關(guān)英文字母大小寫問題的分析,作者從多個(gè)角度進(jìn)行了實(shí)驗(yàn),需要的朋友可以參考下
    2015-05-05
  • MySQL慢查詢之開啟慢查詢

    MySQL慢查詢之開啟慢查詢

    開啟慢查詢?nèi)罩荆梢宰孧ySQL記錄下查詢超過指定時(shí)間的語句,通過定位分析性能的瓶頸,才能更好的優(yōu)化數(shù)據(jù)庫系統(tǒng)的性能。下面這篇文章主要介紹了關(guān)于MySQL開啟慢查詢的相關(guān)資料,需要的朋友可以參考下。
    2017-03-03
  • MySql 存儲(chǔ)引擎和索引相關(guān)知識(shí)總結(jié)

    MySql 存儲(chǔ)引擎和索引相關(guān)知識(shí)總結(jié)

    這篇文章主要介紹了MySql 存儲(chǔ)引擎和索引相關(guān)知識(shí)總結(jié),文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-06-06
  • mysql常見錯(cuò)誤集錦

    mysql常見錯(cuò)誤集錦

    由于最近一直接觸php+mysql,會(huì)遇到一些問題,所以把這些問題整理下
    2008-06-06
  • mysql 設(shè)置默認(rèn)的時(shí)間值

    mysql 設(shè)置默認(rèn)的時(shí)間值

    由于MySQL目前字段的默認(rèn)值不支持函數(shù)
    2009-05-05

最新評(píng)論

凤城市| 青阳县| 祁东县| 乐昌市| 龙口市| 安化县| 邛崃市| 万全县| 吕梁市| 肥东县| 炎陵县| 正定县| 日喀则市| 独山县| 青阳县| 壶关县| 南昌市| 新沂市| 万安县| 沾化县| 溧阳市| 华蓥市| 富阳市| 化隆| 蒙阴县| 前郭尔| 楚雄市| 尼木县| 安顺市| 常山县| 廉江市| 拜泉县| 重庆市| 和政县| 澄江县| 湖州市| 罗江县| 巴林右旗| 綦江县| 上饶县| 通渭县|