首页 > 解决方案 > 多态关系会导致大数据速度变慢吗?

问题描述

晚上好/早上好,

我正在开发一个拥有数百万用户的社交媒体类型数据库,我还没有处理过这么大的数据,所以我有点担心我在评论部分采用的方法。将有对不同实体的评论,例如帖子、页面、组以及 3 到 4 个以上。所以我要问的是,如果有人在大数据上实现了多态关系,你能分享一下你在大数据上的性能经验吗?

标签: laravel-5database-designbigdata

解决方案


因为您有一个用于不同模型的表。

以 Laravel 文档为例(用户和帖子可以有一个图像)。如果你需要检索这样的东西

User::find(1)->image

Laravel 在内部进行类似于以下的查询:

SELECT * FROM images WHERE imageable_id = 1 AND imageable_type = '\App\User';

在您进行图像处理时,如果您有很多图像并且 imageable_* 列没有被索引,那么这类查询将花费大量时间来运行。

所以,我的建议是尝试基于这个元组(imageable_id,imageable_type)创建一个索引。


推荐阅读