[英]Create MySQL table without Primary Key
我有一個不需要主鍵的表。 它由4列組成,分別是電子郵件,日期,時間,消息。 每次用戶登錄,注銷或執行任何重要的特定操作時,我都會記錄電子郵件,日期,時間和操作(消息)。 目前,該表已使用電子郵件作為主鍵進行設置,但我無法在同一電子郵件中插入多個記錄。 我想我可以將時間用作PK,但是有可能兩個動作同時出現。 我如何不使用PK就使用桌子? 我嘗試將其關閉以用於“電子郵件”列,但它不允許我這樣做。
是,因為您已將電子郵件字段定義為主要字段,所以它只能保存唯一數據,並且不允許重復。
因此,您有兩種選擇:
1:刪除電子郵件字段作為主鍵
2:將新的整數字段添加為具有自動增量的主鍵(我希望使用此整數)
要決定一個表的主鍵,首先要考慮以下幾點(適用於innodb):
數據在寫入后將如何訪問(如果不查詢,為什么要存儲它?)。 如果您關心讀取性能,則應按主鍵查詢數據,因為對於innodb,主鍵是唯一可能的聚集索引。
數據是按主鍵排序存儲的,因此,如果您關心寫性能,則應按主鍵寫入理想排序的數據,如果您具有auto_increment,則該數據總是自動發生的。 另外,您未明確為其指定主鍵的表將具有一個隱藏的auto_increment字段,您將無法訪問該字段,即,以相同的成本獲得的收益更少。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.