在电子邮件(唯一)列的mysql表中搜索

时间:2016-02-11 02:44:08

标签: mysql sql

我有几个问题,

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

我的第二个问题的相关性完全取决于第一个答案, 如果是的话,

2)我有一张表有[1-5]亿条记录,有一个独特的电子邮件列。我打算再增加一个列来存储电子邮件(字符串)的hashcode(int)。每当我想要给定电子邮件的记录时,我将使用电子邮件的哈希码搜索记录,然后匹配确切的电子邮件。

第二次效果如何?如果有更好的选择,请建议。

1 个答案:

答案 0 :(得分:2)

CPU可以比字符串更快地比较整数。字符串在内存中表示为ASCII编码的整数,因此为了比较字符串,程序必须首先转换并比较每个字符,然后才能返回结论。在MYSQL中,如果你有一个UNIQUE列和一个固定长度的VARCHAR,搜索时间将非常快,因为mysql引擎将构建一个树并使用它来搜索密钥。如果没有这两个,mysql引擎必须将每个电子邮件行与搜索条件进行比较。 MySQL已经发展了很多年,并且有许多可用于使数据库管理速度极快的机制。