我想知道如何使用电子邮件进行索引。我意识到这是次优的,最好使用自动递增主键。但在本例中,我正在尝试开发一个不需要帐户注册即可使用的精简版应用程序。
SELECT account_id, account_balance, account_payments_received
FROM accounts
WHERE account_email = ?
LIMIT 1
目前,在用户很少的情况下,这可以正常工作。但我担心它何时达到一百万或更多。有没有办法快速索引电子邮件?
我在想也许我可以使用第一个和第二个字符作为键?也许为a=1、b=2、c=3等等制定一个索引号......
你们有什么建议?
最佳答案
1)你应该保留一个带有auto_increment的主键,因为它会在与其他表连接时提高你的效率。
2) 保留 account_email 字段 varchar(255) 而不是 char(255),以便可以取回空闲字节。即使 varchar(100) 也足够了。
3)按照以下命令在此字段上创建部分索引。
alter table accounts add index idx_account_email(account_email(50));
注意:varchar(50) 将覆盖几乎 99% 的电子邮件。
关于mysql - 电子邮件地址作为mysql中的选择索引以获得大表查询速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34527017/