多列主鍵(MySQL)的最大列數是多少?它依賴於列數據類型還是引擎?MySQL多列主鍵
回答
是的,這取決於存儲引擎。
-
The maximum number of columns per index is 16. The maximum key length is 1000 bytes. This can also be changed by changing the source and recompiling. For the case of a key longer than 250 bytes, a larger key block size than the default of 1024 bytes is used.
-
The InnoDB internal maximum key length is 3500 bytes, but MySQL itself restricts this to 3072 bytes. This limit applies to the length of the combined index key in a multi-column index.
謝謝。很好的答案。 –
我發現這一點:
有人試圖創建2列的PK和收到此錯誤:
「指定的鍵過長,最大密鑰長度爲1024個字節」,所以它看起來是最大它是1024個字節,列號無關緊要var類型和空間分配它真的很重要。
我看到一些示例是這樣的:
create table OS_PROPERTYENTRY (entity_name VARCHAR(125) not null, entity_id BIGINT not null,
entity_key VARCHAR(255) not null date_val DATETIME, primary key (entity_name, entity_id, entity_key))
其中
125 *(3個字節)+ 255 *(3個字節)+ 1 *(8個字節)= 1148字節。所以創建一個PK是不可能的。
看看這裏,他們談論它:https://jira.atlassian.com/browse/CONF-2783
- 1. MySQL的多主鍵
- 2. 帶有多列的MySQL InnoDB主鍵
- 3. MySQL中的多列主鍵5
- 4. 多列的主鍵?
- 5. Django - 多列主鍵
- 6. MySQL許多表主鍵
- 7. 非主鍵列MySQL索引
- 8. MySQL中的兩列主鍵
- 9. MySQL和2列主鍵
- 10. MySQL雙列主鍵困難
- 11. MySQL - 多對多表 - 主鍵和副本
- 12. 如何在MySQL中通過多列主鍵選擇多行?
- 13. 多列上的Sqlite主鍵
- 14. 多列SQLite ORM主鍵
- 15. PostgreSQL中多列的主鍵?
- 16. GreenDAO - 多列上的主鍵
- 17. 無法創建外鍵多列主鍵
- 18. MySQL中的多列外鍵?
- 19. 多列上的MySQL外鍵?
- 20. MySQL:多個主鍵和自動遞增
- 21. MySQL的REPLACE查詢有多個主鍵
- 22. 更改多個MySQL主鍵的值
- 23. 多字段主鍵的MySql問題
- 24. MySQL表格設計:主要外國多列鍵可能嗎?
- 25. MySql的多列作爲主鍵不起作用
- 26. MySQL中的多列主鍵是一個優化問題嗎?
- 27. 多列主鍵的MySQL KEY值(在desc表中)是什麼?
- 28. 使用主鍵的MySQL鏈接列
- 29. MySQL主鍵列上的重複索引?
- 30. 重新排列mysql中的主鍵
其16 SQL Server 2008中..不知道生根粉的MySQL –
[本文是從2006年(HTTP ://www.xaprb.com/blog/2006/04/17/max-key-length-in-mysql/),它表示主鍵的最大長度是1000字節。我不確定自那以後有沒有改變。 – Taryn
我認爲MyiSAM的限制是1000字節,InnoDB引擎的限制是3072。 –