数据库中的数据结构与算法,如何实现高效的检索能力

Posted 芋道源码

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库中的数据结构与算法,如何实现高效的检索能力相关的知识,希望对你有一定的参考价值。


文章开头,先请你思考一个问题:你听过检索技术吗?在你看来,什么才是检索技术?

 

你也许会说,“检索技术就是搜索引擎或者数据库吧,高深莫测”。但其实,检索技术的覆盖范围远不止这些,它是一项更底层的通用技术,它研究的是如何将我们所需的数据高效取出。它不仅仅应用于数据库和搜索引擎,也应用在新闻推荐平台、电商平台、生活服务平台等更多的场景中。

 

因为这些业务抽象来看,本质都是在海量的信息中快速筛选出我们需要的内容或服务,都和检索技术紧密相关。因此,尽管业务形态不同,但这些平台的架构设计中,都有着相似的检索模块实现。如何打造高性能的检索引擎,也是这些业务都需要面对的核心问题。甚至我们可以说,如何提供“更快”“更好”的检索服务,是这些公司的核心竞争力之一

 

除了业务场景,在我们的实际工作中,“如何快速检索数据”也是最常见的需求。你一定遇到过这样的场景:

 

  1. 无论你是从事底层架构开发,还是业务开发,我相信你都有可能会面对“为啥我的程序运行得这么慢”的问题比如说,我们打开一些网站或应用的时候,常常会看到“loading”或“数据加载中”的提示,其实,这就很大可能是程序从数据库中检索相关数据缓慢的缘故。如果我们能合理地使用数据库的索引功能,往往能提升好几倍的加载速度,大大减少用户的等待时间。

  2. 再比如,在具体写代码的时候,我们会用到一些系统提供的容器,比如ArrayList、LinkedList。尽管这些容器都提供了“查询是否包含某个元素”的功能,但是它们的性能相差甚远,如果不了解这些容器的检索原理,我们就有可能因为使用不当而导致程序运行缓慢。因此,了解和使用合适的检索技术,往往能有效提升整个程序的执行效率。

 

随着5G等新技术的普及,我们收集和存储的数据会越来越多。在这样一个信息爆炸甚至过剩的时代,如何对信息进行高效检索,将会是这个时代必不可少的技能之一,可以让你有更多的机会进入更好的平台,施展自己的才华。

 

那说到底,我们怎么才能学好检索技术呢?

我曾经想过找到一些适合自学的课程,但我发现很难找到理想的教材。一方面,经典教材大都太过理论化,和实际工作结合不紧密。另一方面,和实际工作结合的教材,往往都是从某一行业的视角出发,而不是专注于某一个基础技术。

 

以这些书籍为教材,我们根本无法聚焦到检索技术的学习上,难以快速、系统地掌握这门实用的知识,把有热情但经验尚浅的工程师被这样的“高门槛”拦在门外的。

 

因此,我向你推荐一位高手,陈东,他结合自己多年来对检索技术的理解,将自己从事相关工作的经验总结出来,经过近半年的精心准备,打磨出《检索技术核心20讲》这个专栏。

 


作者是谁?

 

作者陈东,本硕都毕业于北京大学,目前是上海奇虎360商业产品事业部资深总监。

 

陈东在研究生时期就加入了北大网络实验室。这个实验室当时最有名的一个产品,就是1997年发布的北大天网,它是国内第一个基于网页索引的中文搜索引擎。在这里,他接触到了搜索引擎的原理,并开始研究海量数据的存储和检索。这也算是他检索启蒙的地方。

 

后来,陈东又参加了IBM“天才孵化计划”中的一个基于地理位置的图片社交创新项目。在这里,他遇到了一个特别棘手的挑战,就是要基于每个用户的位置和他们发过的图片进行好友推荐。在这个过程中,他要不断地解决各种检索问题,包括地理位置检索、图片检索、相似用户检索等等。

 

毕业后,陈东先后加入了微软广告技术团队、创业公司聚效广告和奇虎360。尽管这些都属于互联网广告业务,但它们的背后都离不开检索知识和技术的支持。而这么多年打造高性能广告引擎的工作经历,让他对于如何做好检索,以及如何使用检索技术支持业务有了深入的思考和理解。

 

你能获得什么?


如果用一句话来概括一下陈东老师对这个专栏的交付目标,那就是他想通过这个专栏教给你最通用、最核心的检索技术。帮助你解决实际工作中的检索问题,并破除学习检索原理的“高门槛”,助你提升学习效率。

 

基于这几个目标,陈东老师将课程分为了三个部分:

 

1.在基础技术篇,陈东会以常见但是核心的数据结构和检索算法作为入门。这部分内容不仅可以帮助经验尚浅的工程师打好扎实的基础,还能让有经验的工程师站在检索技术的角度,重新审视之前熟悉的数据结构和算法,帮助你开始构建自己的检索知识体系。

 

2.在进阶实战篇,陈东会结合工业界的实际应用场景,更深入地介绍一些高级检索技术,总结一些架构设计的思想。让你能学习到许多工业界的实用且有技术深度的解决方案。如果能深入理解并掌握这部分内容,相信你会成为行业中优秀的工程师。

 

3.在系统案例篇,陈东会对当前热门的各个方向进行系统分析,比如,存储系统、搜索引擎、广告引擎、推荐引擎等。从中你不仅会学到这些行业中是如何应用检索技术的,还会了解不同行业中检索技术的共同点和不同点。这会帮助你更好地扩展自己的知识面,让你能站在架构师、甚至高的角度去思考和提升。

              

限时订阅福利


1.早鸟优惠 ¥55,原价 ¥68。

2.结算时,输入优惠口令:jiansuo66,优惠基础上再减 ¥5,到手价 ¥50,仅限「前 200 人」有效。

3.订阅后分享海报,每邀请一位好友订阅,可得 ¥18 返现,多邀多得,上不封顶。

 


以上是关于数据库中的数据结构与算法,如何实现高效的检索能力的主要内容,如果未能解决你的问题,请参考以下文章

机器学习时代哈希算法如何高效索引数据?

活动预告‖基于Lucene实现万亿级多维检索与实时分析的实践之路

机器学习时代的哈希算法,将如何更高效地索引数据

如何在AI时代通过哈希算法更高效地索引数据

力扣( LeetCode)刷题,这么做才高效

《TableStore最佳实践:轻松实现轨迹管理与地理围栏》