我正在索引一個有關varchar(3000)的描述的MySQL表。我收到了你期望看到的典型錯誤,如:ERROR 1709 (HY000): Index column size too large. The maximum column size is 767 bytes.
。MySQL max varchar索引長度超過3072字節。這怎麼可能?
這不會混淆爲閱讀其他帖子(例如here),我可以使用的最大長度是MyISAM中的varchar(255)或InnoDB中的3072字節。令我困惑的是,多年來,我已經能夠索引更大的varchar列(5000個以上),但這種能力現在已經停止。我最近做了一個改變,導致了其他一些問題(大部分已經修復),一直在安裝MySQL集羣。我還沒有使用這個,但我想安裝與默認的MySQL安裝擰。
如果任何人有任何想法,我怎麼能夠索引這樣的大列之前,我會很感興趣知道。謝謝。
可惜我不能張貼圖片,但我仍然有索引的VARCHAR列有一個3000的限制。這不應該被允許嗎? – 2014-12-04 16:14:38
什麼顯示來自'table'的索引顯示 - 它可能只有前767被索引 – exussum 2014-12-04 16:26:21
'Cardinality:16949345; Sub_part:1000; INDEX_TYPE:BTREE'。猜測sub_part是指767?如果是這種情況,我如何在索引列超過限制的列之前將其返回給系統(大概是這樣),它會自動索引第一個767? – 2014-12-04 16:53:31