【发布时间】:2009-01-11 23:14:55
【问题描述】:
考虑表:(-> 表示 SQL 定义的关系)
USER (userid, username, imageid->IMAGE.imageid)
EVENT (eventid, userid->USER.userid, description)
IMAGE (imageid, location)
假设我有一个定义为以下查询的视图(我们称之为vw_UserInfo)。
SELECT u.*, i.* FROM users u
INNER JOIN images i ON i.imageid = u.imageid
SQL 是否知道 EVENT.userid 和 vw_UserInfo.userid 之间的关系?我的意思是,对相关字段进行JOIN 操作的性能优势是否仍然适用?我想这可能会因您使用的 SQL 数据库而异。
编辑:试图更清楚一点。我问会不会
SELECT ui.*, e.* FROM vw_UserInfo ui
INNER JOIN events e ON ui.userid = e.userid
从定义的外键中受益
SELECT u.*, i.*, e.* FROM users u
INNER JOIN images i ON i.imageid = u.imageid
INNER JOIN events e ON e.userid = u.userid
会吗?
【问题讨论】:
标签: sql performance