应该创建什么索引?
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 查询
我正在学习在线数据库课程,但遇到了这个问题。
假设我有表 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
,因为很可能在不久的将来您将转换它从内部或左连接