[英]Create a mysql primary key without a clustered index?
我是一個SQL Server人,正在嘗試使用MySQL來處理即將到來的大型項目(由於許可),而且我沒有找到很多信息來創建沒有聚簇索引的主鍵。 我在5.1上讀到的所有文檔都說主鍵自動被賦予聚簇索引。 由於我使用二進制(16)作為主鍵列(GUID),我寧願沒有聚集索引。 所以...
這取決於您使用的存儲引擎。 MyISAM表不支持聚簇索引,因此MyISAM表上的主鍵不會聚集。 但是,InnoDB表上的主鍵是群集的。
有關每個存儲引擎的優缺點的更多詳細信息, 請參閱MySQL手冊 。
你需要一個主鍵; 如果您不自己創建一個,MySQL將為您創建一個隱藏的。 你總是可以為主鍵創建一個AUTO_INCREMENT字段(這比我認為MySQL在表中有隱藏字段更可取)。
考慮13.6.10.1的內容。 群集和輔助索引 ,似乎您無法真正定義聚集索引設置在哪一列:
關於你帖子中的第二個問題:表上沒有PK,GUID上有UNIQUE索引; 它可能是可能的,但它不會改變聚集索引的任何內容:它仍然可能在GUID列上。
某種黑客攻擊可能是:
不確定你可以在GUID上放置第二個UNIQUE索引......也許^^
並且不確定聚集索引會有多大變化; 但可能值得一試......
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.