2
我有一個VARCHAR(384)存儲電子郵件的MyISAM表,我想檢查當電子郵件存在,但該指數長度限制爲VARCHAR場333字節 (因爲我使用utf8(1000字節/ 3字節))。指數與384的長度在MySQL數據庫中
那麼什麼是最好的方式來搜索是否存在指定的電子郵件,使用FULLTEXT索引或在BINARY(16)(帶有衝突檢查)中使用電子郵件md5-hash創建另一個字段?
[編輯]使用1M記錄
試驗。
Fulltext index: ~300 ms
333 length index: ~15 ms
binary(16) md5-hash: ~15 ms
所以我認爲,最好的選擇是在性能上的第二場,但是......第二場=更大的桌子,這是不利於性能或存儲。因此,在電子郵件大小不超過150個字符的真實場景中,VARCHAR(384)中的長度爲150的索引就足夠了。
我知道我可以有一個長度爲150的字段來存儲電子郵件。但是我玩的是假設的表格,384是電子郵件的最大長度。 – Wiliam 2010-08-26 08:46:38