0

我有两张桌子:users (userid,student_no,name)regd (semester,student_no)users包含大约 7,000 条记录和regd大约 20,000 条记录。有时 in 中的条目regd不在users.

如何快速选择所有条目usersregd包含学期 = '2012-2' 的条目?我试过这个:

 SELECT * FROM  `regd` , users WHERE
      semester =  '2012-2' AND users.student_no = regd.student_no

但是如果我有一个很小的数据库,加载查询需要很长时间。每六个月添加约 10,000 个条目,每年添加regd约 2,500 个条目users

4

1 回答 1

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 记录并不大,所以我只能假设你没有任何像样的索引。

希望这可以帮助。

于 2013-03-01T16:53:17.980 回答