- 二進制
- utf8_bin
- utf8_unicode_ci
- utf8_general_ci
哪一個是最適合在MySQL數據庫中存儲的電子郵件獨特?什麼是電子郵件字段的最佳字符集?
注意:該電子郵件字段將用於用戶登錄。
哪一個是最適合在MySQL數據庫中存儲的電子郵件獨特?什麼是電子郵件字段的最佳字符集?
注意:該電子郵件字段將用於用戶登錄。
電子郵件地址是一段文字。因此,不要使用二進制,使用文本。
Utf8似乎是一個不錯的選擇。我不確定電子郵件地址支持哪些字符,但可以預計將來會有越來越多的unicode字符被允許。特別是如果你在數據庫的其他地方使用utf8,你不必從一種編碼切換到另一種編碼,只需使用utf8來處理所有事情。
至於之間進行選擇utf8_bin,utf8_unicode_ci和utf8_general_ci,所不同的是僅覈對。這意味着比較字符串時會有所不同。
現在,您必須在允許和正常之間做出選擇。通常,電子郵件地址不區分大小寫,但可能區分大小寫。
所以,如果你對你的電子郵件列中使用唯一索引,並且要允許電子郵件地址只在他們的資本不同,你應該使用utf8_bin,因爲與_CI結束歸類是指「不區分大小寫」。
如果您使用唯一的索引並且希望避免只有大小寫不同的電子郵件,請使用utf8_unicode_ci。
這就是說,我用utf8_unicode_ci。我希望數據庫能夠將[email protected]和[email protected]識別爲相同的地址。它比允許具有相同字符和不同大小寫的地址的可能性更有用。
出於好奇,你看過[電子郵件地址規範](http://tools.ietf.org/html/rfc2822#section-3.4.1)?這可能會幫助你一點點。 –
現在我檢查了鏈接。但我仍然不知道哪一個會更快,沒有任何問題。 電子郵件中是否有任何unicode字符?我以前沒見過。 – Yves
@Yilmaz,是的。它[在2003年允許](http://tools.ietf.org/html/rfc3490),非ascii頂級域名[2009年快速追蹤](http://www.icann.org/ EN /資源/ IDN) – Ben