为什么社交网络中的数据页面转换技术比较复杂?
作者:微信群 微信号: 热度:393 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行记录。
最新文章
-
疫情后如何创业(揭晓疫情后如何创业成功)
疫情后如何创业赚钱?下面小编整理了疫情后如何创业的初学教程, 跟随小编来详细了解一下......1482人阅读 2023-06-18
-
2023短视频抖音对微商的冲击
很多网友问小编有关抖音对微商的冲击有多大?最新抖音对微商的冲击是什么?下面小编整理了......1375人阅读 2023-06-18
-
2023年做什么行业最赚钱(珍藏在家里就能赚钱的工作)
很多网友问小编有关2023年做什么行业最赚钱最有前途?最新2023年做什么行业最赚钱?下面小......1529人阅读 2023-05-22
-
微商怎么找客源人脉(介绍销售怎么找客户源)
儿童节快要到来,很多网友问小编有关微商怎么找客源人脉软件?最新微商怎么找客源人脉自动......1643人阅读 2023-05-11
-
微信群的作用和用途
最新的微信群有什么功能和用途?下面小编整理一下微信群的功能和使用的介绍,跟着小编了解......1739人阅读 2023-05-11