2016-02-11 46 views
0

我有幾個問題,在電子郵件(唯一)列的mysql表中搜索

1)在int鍵上搜索比在字符串鍵上搜索更快?

我的第二個問題的相關性完全取決於第一的答案, 如果是的話,

2)我有有[1-5]十億記錄的表,具有唯一的電子郵件列。我打算再有一列存儲電子郵件(字符串)的hashcode(int)。每當我想要一封給定電子郵件的記錄時,我都會使用電子郵件的哈希碼搜索記錄,然後匹配確切的電子郵件。

第二個效果如何?請建議是否有更好的選擇。

+0

我不認爲你有一個10億個唯一電子郵件地址的表格。 (世界人口是70億) –

+0

@EdHeal假設,我有10億個唯一字符串 – Kuldeep

+0

也許分區數據 –

回答

2

CPU可以比字符串更快的整數進行比較。字符串在內存中表示爲ASCII編碼整數,因此爲了比較字符串,程序在返回結論之前必須首先轉換並比較每個字符。在MYSQL中,如果您將UNIQUE列與固定長度的VARCHAR結合使用,搜索時間將會非常快,因爲mysql引擎將構建樹並使用它來搜索密鑰。如果沒有這兩個,mysql引擎必須將每個電子郵件行與搜索條件進行比較。多年來MySQL一直在進步,並且有很多機制可以用來使數據庫管理非常快。

相關問題