背景: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
,则返回SCHOOL
表email
数据;但我需要USERS
表格email
数据。但是,当我尝试仅命名特定字段的第一个查询时,它不断超时。我犯了一个简单/愚蠢的错误吗?有没有更好的方法来获取这些数据?谢谢。