目前,我通过检查该用户是否已在我们的视图表中记录了视图来检查该用户是否已观看了视频。
查询如下所示:
SELECT EXISTS(SELECT 1 FROM views WHERE videoid=:vid AND userid=:uid)
在显示带有视频缩略图的页面时,如果用户已经观看过此视频,则我们会覆盖“ Seen”,类似于youtube上的功能。
问题在于该查询的计算速度相当慢,因为视图表具有大量行-40或50ms。如果某个页面显示了60个视频缩略图,则需要3整秒的SQL延迟才能呈现该页面。
我的问题是否具有体系结构,还是可以做一些事情来加快查询的执行速度?
您没有views
覆盖videoid和userid列的索引,因此数据库可能会进行全表扫描。添加索引应该会有所帮助。例如:
alter table views add index (videoid, userid);
如果查询仍然很慢,请发布执行计划。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句