我有两张桌子: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中。
发布于 2013-03-01 16:53:17
在联接列上添加索引:
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记录并不大,所以我只能假设你没有任何像样的索引。
希望这能有所帮助。
https://stackoverflow.com/questions/15162427
复制相似问题