应该创建什么索引?

What index should be created?

我正在学习在线数据库课程,但遇到了这个问题。

假设我有表 USER、CHECKIN 和 PLACE。

USER(uid, uname, ucity),uid为主键

PLACE(pid, pname, pxcoord, pycoord, pcity),pid为主键。

CHECKIN(uid,pid,cdate,ctime),(uid,cdate,ctime)为主键

查询是

select c.uid, c.pid c.cdate
from user u join checkin c join place p 
where ucity='NewYork' and pcity='Chicago'

最多只允许创建两个索引结构,什么是最佳选择,为什么?

对于那个查询,在 ucity 上创建一个索引,在 pcity 上创建一个索引。

另外,如果您被允许创建最多 2 个索引,也许您还可以修改一个。如果是这种情况,请将 CHECKIN table 上的主键修改为在 uid 之后也包含 pid,因为很可能在不久的将来您将转换它从内部或左连接

中的 cross join 查询