1

背景:MyISAM

users

user_id | email | first_name | last_name | registration_date |

school

user_id |school_id | email | organization |

以下查询导致执行时间分别为 400 和 600 秒:

SELECT users.user_id, users.email, users.first_name, users.last_name,
school.organization FROM users 
LEFT JOIN school ON users.user_id = school.user_id 
ORDER BY users.registration_date DESC LIMIT 200

但是,如果我改为使用全选,则查询会立即运行:

SELECT * FROM users LEFT JOIN school ON users.user_id = school.user_id 
ORDER BY users.registration_date DESC LIMIT 200

我最初没有命名表中的字段,并且各个电子邮件字段包含不同的数据。如果我使用SELECT * query,则返回SCHOOLemail数据;但我需要USERS表格email数据。但是,当我尝试仅命名特定字段的第一个查询时,它不断超时。我犯了一个简单/愚蠢的错误吗?有没有更好的方法来获取这些数据?谢谢。

4

0 回答 0