0

我试图从两个表中获取数据,它们是 wp_users 和 opt_in。

这两个表都有一个电子邮件列(它们之间唯一的共同点),我试图获得如下所示的结果,其中我有 wp_users 登录名和 opt_in 表数据的其余部分:

wp_users.user_login, email, opt_in.first_name, opt_in.last_name

我写的查询太慢了。每个表中有大约 100k 行,如果不对查询进行限制,我就没有得到结果。我一定没有使用正确的工具来完成这项工作。告诉我我的方式的错误。

这是一个查询示例,它为我提供了正确的数据,但速度很慢:

SELECT wp_users.user_email, opt_in.first_name, opt_in.last_name 
FROM wp_users, opt_in 
WHERE wp_users.user_email = opt_in.email;
4

2 回答 2

2

您应该在该列上创建索引。

对于电子邮件字段,您可以使用 UNIQUE 索引,它还可以帮助您删除重复条目。

如果您想检查表上的现有索引。在 phpmyadmin / mysql 控制台中使用以下查询

show indexes from TABLENAME;
于 2012-10-31T08:39:46.727 回答
2

SELECT wp_users.user_email, opt_in.first_name, opt_in.last_name
FROM wp_users
INNER JOIN (opt_in)
ON (opt_in.email = wp_users.user_email)

于 2012-10-31T09:11:38.913 回答