我们有一个旧系统,它显示保存在数据库中的新闻源。它之前运行良好,完全没有问题。但是,现在查询不起作用,完成查询需要超过 15 分钟。为了测试,我尝试了许多优化查询的方法。然而,没有运气。如果有人可以提出一些建议,我将不胜感激。当前数据库没有任何索引。如果有人认为我应该创建索引。请让我知道哪些表和索引应该是什么。我对索引知之甚少。请找到我正在运行的查询以及 ERD。
select *, DATEDIFF(Now(), Date) as Day, DATE_ADD(Date, INTERVAL 1 MONTH) as Diff from users
left join users_propertyvalues UPV USING(UserId)
left join propertyvalues PV USING(ValueId)
right join item_categories IC ON (IC.CategoryId=UPV.ValueId)
left join newsfeed USING(ItemId)
left join rss_feeds F ON(PV.ValueId=F.FeedId)
where EmailEnabled
having NOW() <= Diff
order by UserId, CategoryId, Date DESC
堆栈溢出不允许我上传 ERD 图片。请让我知道是否有人想要我可以将其上传到某个地方。
感谢您的帮助![在此处输入图片描述][1]