我有两个表:users (userid,student_no,name)
和regd (semester,student_no)
。
users
包含大约7,000条记录,regd
包含大约20,000条记录。有时,regd
中的条目不在users
。
如何快速选择users
中regd
中有条目='2012-2'条目的所有条目?
我试过这个:
SELECT * FROM `regd` , users WHERE
semester = '2012-2' AND users.student_no = regd.student_no
但如果我有一个很小的数据库,那么加载查询会花费很长时间。每六个月,大约有10,000个条目被添加到regd
,每年约有2,500个条目被添加到users
。
答案 0 :(得分:3)
在连接列上添加索引:
CREATE INDEX idx_regd_student_no ON regd(student_no);
和
CREATE INDEX idx_users_student_no ON users(student_no);
此外,如果您的表没有PK,请添加一个。对于regd,您可以使用PK = (semester, student_no)
。
正如其他评论所说,22k记录并不大,所以我只能假设你没有任何合适的指数。
希望这有帮助。