我有一個問題,我需要將Amazon.com的訂單號存儲到MySQL表中。 Amazon.com訂單號由數字和連字符組成,如102-1234567-1234567(17個數字和2個連字符)。我已經看到這個「數字」被存儲爲字符串,因爲在某些情況下使用了連字符,並且隨後對該列進行的搜索是字符串搜索而不是數字搜索。MySQL:存儲Amazon.com的包含連字符的訂單號
現在,我只是將它們存儲爲VARCHAR(19),但有沒有一種方法可以存儲它,以便在存儲和檢索時更高效,更快速?例如,我想過將每個數字段解析爲其自己的一列(對於一個訂單「數量」共計3列),並且執行... WHERE colA=102 AND colB=1234567 AND colC=1234567
來提取特定訂單,而不是執行...WHERE col LIKE '102-1234567-1234567'
。我知道前者使用的字節少得多,但速度更快嗎?我正在研究的表格有超過10萬行,每天增長很少。
關於我應該如何修改結構或者我不應該怎麼做的建議或意見? TIA!
謝謝你的所有偉大的答案。我將使它成爲VARCHAR(X),其中X> 19,索引此列,使用'='而不是'LIKE',儘管我需要閱讀好處。我不太瞭解這個區別。 – musicliftsme 2012-01-16 23:28:59