我有MySQL InnoDb表,我想存儲長(限制爲20k符號)字符串。有什麼辦法可以爲這個字段創建索引嗎?MySQL索引爲長字符串
3
A
回答
3
您需要限制索引的長度,否則您可能會得到error 1071(「指定的密鑰太長」)。上CREATE INDEX MySQL手冊條目描述這一點:
索引可以被創建,只使用列值的前導部分,使用COL_NAME(長度)的語法指定的索引前綴長度:
前綴可以爲CHAR,VARCHAR,BINARY和VARBINARY列指定。
BLOB和TEXT列也可以被索引,但必須給出前綴長度。
對於非二進制字符串類型,以字節給出前綴長度,對於二進制字符串類型,以字節爲單位給出。也就是說,索引條目由CHAR,VARCHAR和TEXT列的每個列值的第一個長度字符以及BINARY,VARBINARY和BLOB列的每個列值的第一個長度字節組成。
它也增加了這一點:
前綴支持和前綴(如果支持)的長度是存儲引擎相關的。例如,對於MyISAM表,前綴可以長達1000個字節,對於InnoDB表,前綴可以長達767個字節。
8
相關問題
- 1. 字符串索引的MySQL
- 2. 索引Mysql字符串
- 3. 作爲字符的索引字符串
- 4. 字符串子字符串索引可能是字符串的長度
- 5. 查找最長字符串的索引並返回該索引?
- 6. MySQL - 字符串後綴索引
- 7. MySQL - 索引字符串比較
- 8. 索引字符串?
- 9. 字符串索引
- 10. 索引字符串
- 11. 爲行值MYSQL搜索字符串
- 12. VB:ArrayList以字符串作爲索引(鍵)
- 13. 作爲數組索引的字符串
- 14. 作爲字符串的R行索引?
- 15. C#將字符串更改爲字符串中的小索引
- 16. MySQL的:選擇最長的字符串出現在搜索字符串
- 17. 使用MYSQL將字符串長度限制爲最小字符
- 18. MySQL字段長的中文字符串
- 19. MySQL搜索字符串
- 20. mysql pivot檢索字符串
- 21. 使用字符串索引
- 22. 子索引成字符串
- 23. 字符串索引OutOfBoundsException?
- 24. 字符串索引驗證
- 25. postgresql索引字符串列
- 26. C++索引TCHAR字符串
- 27. 索引,字符串,列表
- 28. 字符串索引越界
- 29. PHP:字符串索引
- 30. 獲取字符串索引
你使用文本作爲數據類型嗎? – Ibu
我可以使用任何字符串數據類型 – SiberianGuy
相關答案是[here](http://stackoverflow.com/questions/3489041/mysqlerror-specified-key-was-too-long-max-key-length-is-1000-bytes/3489331#3489331)和[there](http://stackoverflow.com/questions/1814532/1071-specified-key-was-too-long-max-key-length-is-767-bytes/1814594#1814594) 。 –