2016-02-11 39 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一直在进步,并且有很多机制可以用来使数据库管理非常快。

相关问题