我想創建一個包含「電子郵件地址」和/或「用戶名」字段的「用戶」表,我是否還應該將「id」int usigned auto_increment
添加爲primary key
?選擇PRIMARY KEY
我在問,因爲我已經看到一些教科書示例在這樣的表中使用「id」字段與另一個unique
字段。
我想創建一個包含「電子郵件地址」和/或「用戶名」字段的「用戶」表,我是否還應該將「id」int usigned auto_increment
添加爲primary key
?選擇PRIMARY KEY
我在問,因爲我已經看到一些教科書示例在這樣的表中使用「id」字段與另一個unique
字段。
您應該使用userId
列,因爲使用VARCHAR
索引表的列數據類型的性能會較差。使用INT
更好的性能。他們佔用更少的空間,更重要的是他們比較快。可以在一個CPU指令中執行INT
比較。對於VARCHAR
s或CHAR
s,必須依次比較每個字符。這使得每個PK查找更快。如果你有連接表,每個連接選擇都會查找PK。
你不需要,但我總是這樣做。 – DickieBoy
根據您的應用程序,您可能不希望對電子郵件進行唯一限制。 – Kermit