一文讲透「挑选」逻辑-检索背后的功能

4天前

筛选功能通常需要加载几秒钟,这种问题是怎么产生的?本文,作者为我们解答了这个问题,一起来看看。


当进行筛选功能时,总会遇到响应缓慢的问题:为什么要点击选择之后, loading 几秒钟?这种问题不是功能设计的问题。作为一个产品,你不会代码,也不会理解背后的原理。毫无疑问,你会发疯,甚至想自己学习开发。


然后下面会带你了解选择背后的逻辑,了解程序是如何从数据中筛选出用户想要的内容,以及提高选择速度背后的原理,帮助你更好地与开发做朋友。


阅读目标:产品经理(程序员兄弟谨慎进入)


1. 关于筛选功能


筛选功能是 SAAS 一种常见的产品设计功能,从而提高查询效率和准确性。选择功能的实现一般取决于 SQL 查询句子和数据库索引。


2. 影响选择速度因素


影响选择速度的主要因素包括


(1)数据量的大小


(2)应用程序检索


查询句子的复杂性(3)


(4)数据库的硬件配置


数据量越大,选择时间越长。搜索的应用可以显著提高选择速度,尤其是对于大型手表的查询。查询句子的复杂性也会影响选择速度,复杂的查询句子可能需要更多的计算资源。


3. 为何进行检索?


搜索的工作原理类似于书籍的目录。它为存储在指定列中的数据值提供指针,然后按照指定的排序顺序对这些指针进行排序。在实施查询时,数据库系统首先查询索引,然后通过搜索找到相关数据,从而避免了整个表格的扫描,大大提高了查询效率。


简单理解,搜索相当于提前对数据进行分类(目录),从而提高选择查询速度。而唯一不同于书的就是 1 个别目录,检索可以建立多个目录。与此同时,检索要建立正确,才能有效提高选择速度。


比如下面的数据


前提条件:已分别对区域房型建立索引(目录)


目标:选择“天河区” 3 房间里的房子,并根据房子的录入时间倒序分页返回结果。


1、首先,程序根据搜索“区域”快速搜索“天河区”的数据。如果没有搜索,程序需要查询整个表格,判断没有数据是否是“天河区”,然后才能找到“天河区”的房子。目前相当于提前做了一般的查询;


2、然后按照“房型”的检索程序快速查找” 3 “居”数据。让以后将这两部分数据交集取出;


3、接着将 2 内部结果按房屋输入时间倒序排序;


4、将相应的分页返回到客户端进行排序结果。


搜索可以组合多个字段建立,形成多列索引。上述例子可以根据字段“区域”和“房间类型”建立。 1 一个检索,那么程序查询过程就会变得如下,速度更快。


1、首先,按照检索程序快速查找“天河区” 3 “居”数据;


2、接着将 1 内部结果按房屋输入时间倒序排序;


3、将相应的分页返回到客户端进行排序结果。


以上只是对搜索的简单理解。数据库可以根据查询条件选择最佳的查询路径,而不仅仅是“取交集”的方式。如果你想了解这个内容,可以咨询R&D人员。


4. 搜索对排序的影响


搜索本身就是一个有序的数据结构,类似于书籍的目录。当查询需要排序时,如果排序字段已经建立搜索,数据库可以直接利用搜索的有序性来回到排序后的结果,而无需进行额外的排序操作。这种方法可以显著减少排序的时间和能耗。但前提是用户想要的排序规则与搜索的排序规则相同。


5. 增加索引的数据量有多大,能带来多大的速度?


基于文章《实验》MySQL 有多少数据需要建立索引?当信息量达到几十万条时,搜索效果显著,可以显著提高查询速度。数据量越大,搜索越重要。当信息量达到1000万级时,是否有检索会导致性能差1000倍!因此,当信息量超过几十万条时,应考虑添加索引。


6. 如何建立搜索,是否所有字段都需要添加索引


搜索的建立需要根据具体的需求场景和查询情况来确定,并不是所有的字段都需要索引。索引应选择区分度高、查询频率高的字段。


同时,应适当检索总数。过多的检索会增加维护成本,影响数据更新操作的效率。相当于一本书。如果书的内容每次都更新,目录也需要实时同步。如果有多个搜索(目录),则需要实时同步每次更新数据和多个搜索。搜索越多,维护成本越高。


7. 单表查询 vs 多表查询


假如一个数据表可以从数据库中找到所需的数据,那么这种情况是最完美的。但是 1 一个复杂的系统,不可能使用。 1 例如,张表存数据 1 一个电子商务系统,将存储以下多个表存储信息


如果需要查询某个用户的订单记录,结果需要返回:用户昵称、产品名称、产品图片、购买时间信息。在这种情况下,为了获得预期的结果,需要联合用户表、订单表和商品表进行查询。


过多的表关联确实会影响数据库的速度。当进行多表关联查询时,尤其是涉及大量数据的表,查询可能会变慢。这是因为 MySQL 更多的表格顺序和复杂的查询逻辑需要处理,从而增加了查询时间的成本。


另外,当使用多个大型手表进行相关查询时,如果其中一个手表的数据量特别大,查询效率会进一步降低。在这种情况下,查询效率可以通过优化检索设计来提高。


8. 数据库服务器 cpu 满了?这是什么意思?


CPU 它是计算机的大脑,负责执行和处理各种目标和程序所需的所有指令和操作。CPU 使用率是指计算机中央处理单元 ( CPU ) 处理时间消耗量。


如果您在计算机上运行程序或执行任务,CPU 将对指令进行处理和执行。CPU 在任何给定时间中,使用率是多少? CPU 利用容量。以百分比来衡量,100%。 代表 CPU 完全利用处理量。


作为数据库服务器 CPU 当满载时,系统响应可能会变慢或完全停止响应。在运行和维护过程中,经常会遇到 MySQL 数据库占用 CPU 过高的情况,导致系统性能下降,甚至导致系统崩溃。


造成 CPU 满载的原因可能有以下两个:


1、自我服务造成的


如果代码错误或者业务发展浏览量增加造成的,如果代码错误,开发人员需要仔细检查优化代码,紧急处理是重启服务或者服务器。如果是自身市场快速扩张造成的,建议及时升级设备。在这种情况下,重启服务基本没有用,因为 CPU 会立刻跑满的。


2、中毒造成


如果是中毒所致 CPU 爆满时,应立即关闭过程,并使用杀毒工具对木马进行查杀。


本文由 @口述商品 每个人都是原创产品经理。未经作者许可,禁止转载。


题图来自 Unsplash,基于 CC0 协议


这篇文章的观点只代表作者本人,每个人都是产品经理平台,只提供信息存储空间服务


本文仅代表作者观点,版权归原创者所有,如需转载请在文中注明来源及作者名字。

免责声明:本文系转载编辑文章,仅作分享之用。如分享内容、图片侵犯到您的版权或非授权发布,请及时与我们联系进行审核处理或删除,您可以发送材料至邮箱:service@tojoy.com