在MySQL中索引电子邮件地址的最有效方法是什么?

时间:2012-04-19 07:59:18

标签: mysql

在最小化索引大小的同时索引MySQL中数百万个电子邮件地址的最佳方法是什么?

需要索引来快速检查表中是否存在电子邮件。允许重复。

同样,目标是最小化索引的大小。目前在varchar字段上使用标准索引,但考虑创建二进制哈希并索引前几个字符。还有其他选择吗?

2 个答案:

答案 0 :(得分:2)

如果您不想要重复输入,请使用Unique Index作为电子邮件 如果任何重复条目完成,它将不会插入任何新行并将给出错误。

答案 1 :(得分:0)

这取决于。尝试两者并测试。请记住,此等式中的读取速度不仅仅是读取速度。如果此表经过大量更新和插入,那么您应该看到对插入的影响也是如此。

我怀疑(我在这里可能完全错误)普通的b树索引会将值存储在树中,而哈希索引需要计算哈希值然后存储到树中。这可能意味着哈希索引使用的空间更少,但更多的工作是更新索引或插入新值。

在我看来,在哈希索引中插入一个新值可能需要像

这样的东西

1)为值创建哈希键。

2)将哈希插入索引。

正常的b树将是

1)将值插入索引。

无论如何我的价值2美分。