我有一个查询,我在 MYSQL 视图中进行了查询。这个特定的视图是我们应用程序的核心,因此我们正在考虑对其进行调整。Map_Id,User_No,X,Y 上有一个主键。我很乐意调整 SQL 服务器查询,但不完全确定 MySql 在这方面是如何工作的。在其上放置一个涵盖点和 update_stamp 的索引会有所帮助吗?此表上的读取率为 90%,因此虽然它有很多插入,但它与读取量不相上下。
描述:获取给定地图中每个 x,y 坐标点最多的人。抢七由谁拥有最新的更新戳,然后是用户 ID。
SELECT GP.Map_Id AS Map_Id,GP.User_No AS User_No,GP.X AS X,GP.Y AS Y, GP.Points AS Points,GP.Update_Stamp AS Update_Stamp
FROM (Grid_Points GP LEFT JOIN Grid_Points GP2
ON (
(
(GP2.Map_Id = GP.Map_Id) AND (GP2.X = GP.X) AND (GP2.Y = GP.Y) AND
((GP2.Points > GP.Points) OR ((GP2.Points = GP.Points) AND (GP2.Update_Stamp > GP.Update_Stamp)) OR
((GP2.Points = GP.Points) AND (GP2.Update_Stamp = GP.Update_Stamp) AND (GP2.User_No < GP.User_No)))
)
)
)
WHERE ISNULL(GP2.User_No);