在存储/编制索引之前REVERSE()电子邮件地址?

时间:2011-11-02 16:00:40

标签: mysql database performance email indexing

db表将在其中一列中存储大量电子邮件地址。 该列通常会查找单个地址,因此我将在该列上设置索引。只搜索完整的地址,没有部分或LIKE。

在性能方面更有意义:将地址反转,即'moc.liamg@tset'或保持直线,即'test@gmail.com'?

1 个答案:

答案 0 :(得分:1)

如果您经常查询部分电子邮件域(即@之后的部分),则可以在索引列中反转

这样,数据库引擎可以将索引用于这样的查询:

... WHERE ReverseMail LIKE REVERSE('.com') + '%'

如果您在大多数情况下查询完整域,只需创建一个仅包含域的单独列并将其编入索引。针对=运算符的索引查找将快于针对LIKE运算符的索引查找。