您现在的位置: 首页 > 微信文章 > 互联网 > 为什么社交网络中的数据页面转换技术比较复杂?

为什么社交网络中的数据页面转换技术比较复杂?

作者:微信群  来源:微信圈子  热度:269  时间:2019-08-26

为什么社交网络中的数据页面转换技术比较复杂?最近讨论的一个传统问题是,问题本身相对简单,对于关键列表类型的数据,如何优化方案以实现性能和成本的权衡。密钥列表在

为什么社交网络中的数据页面转换技术比较复杂?

最近讨论的一个传统问题是,问题本身相对简单,对于关键列表类型的数据,如何优化方案以实现性能和成本的权衡。密钥列表在社交产品和面向用户的产品中非常常见,例如用户的朋友关系{uid:{1,2,3,4,5}},表明uid有1,2,3,4, 5个朋友;微博下的评论ID列表的结构是{weibo_id:{comment_id1,comment_id2}},用户发布的微博ID列表,依此类推。

当列表长度较小时,可以直接使用数据库的翻页功能,如

SELECT * FIBROMISTTABLELIMIT offset rowcount;

根据经验,在大多数情况下,单个服务的案例长度为99%,并且当数据大小较小时,上述方法非常适合。但是,在剩余的1%情况下,数据可能多达100万。当数据大小很大时,当访问具有大偏移的数据集时,上述方法效率非常低。但是,在考虑解决方案时,不能忽略这些非常大的数据集的问题。因此,为了实现适用于各种可变长度列表场景的翻页解决方案,该行业没有简单有效的解决方案。这也反映了经常被称为优化20%功能的80%的时间。

访问列表数据有两种常见方法

  1. 扶梯方式

自动扶梯模式在导航中通常只提供前一页/下一页的两种模式,有些产品甚至不提供前一页功能,只提供更多/更多的模式,也有更多的自动加载方式,从技术上可以归纳为自动扶梯模式。

(图:blogspot的导航栏)

(图:许多瀑布流产品只提供更多的导航栏)

自动扶梯法在技术实施上简单有效。根据当前页面的最后偏移量可以获得一个页面,下面的方法可以在MySQL中使用。

SELECT * FROM LIST_TABLE WHERE id offset_id LIMIT n;

由于位置是在WHERE条件下指定的,根据B-树实现原理,算法复杂度为O(log n)。

  2. 电梯方式

另一种数据获取方法在产品中体现为准确的翻页方法,例如1、2、3n,同时,还可以由用户在导航时直接输入到n个页面。中国大多数产品经理对电梯方法有特殊的偏好,如图所示。

(图片:timyang.net网站上的导航栏)

但是,当使用以下SQL时,电梯模式在技术实现中相对昂贵

SELECT * FIBROMISTTABLELIMIT offset rowcount;

我们可以使用MySQL解释来分析,如下所示,当offset = 10000时,MySQL实际上会扫描10,000行记录。

1.微信圈子网内容部分来自于网络,如有侵权请联系管理员删除;2.文章仅代表作者个人观点,不代表好微信群立场;3.微信圈子网仅为用户发布的内容提供存储空间,微信圈子网不对用户发表、转载的内容提供任何形式的保证.

登录

使用微信帐号或QQ直接登录,无需注册