当前位置: 首页 > news >正文

倒排索引与数据库索引

数据库索引

mysql索引以B+树作为存储结构,B+树的主要特点是,非叶子节点不存储数据,数据只存储在叶子节点上,并且所有叶子节点组成有序链表

主键索引(聚簇索引)

假设我们的表结构如下

CREATE TABLE `users` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',`name` varchar(20) DEFAULT NULL COMMENT '名称',`bank_no` varchar(20) DEFAULT NULL COMMENT '银行卡号',`hobby` varchar(20) DEFAULT NULL COMMENT '兴趣爱好',PRIMARY KEY (`id`),UNIQUE KEY `user_bank_no` (`bank_no`,`name`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8

数据库主键索引对应的文档存储的表内容可表示为:

DocumentIdnamebank_nohobby
1鲁智深6201篮球、唱歌
200吴用5100篮球、旅游
3000花荣1234台球、旅游
5000柴进2245唱歌、游泳
5001武松5678篮球、游泳
5200杨志1345游泳、台球
8000宋江9987唱歌
10000卢俊义3347足球、旅游

主键索引的存储结构如下


图:主键索引存储结构
非主键索引

非主键索引存储结构



非主键索引的叶子节点只存储索引字段及主键,如果需要索引字段之外的信息,则需要根据主键再回表查询。
比如我们按照银行卡号查询用户名、兴趣爱好等字段,则会根据索引过滤后再回表查询完整信息,被称为是索引下推。

倒排索引

数据库索引是一种正排索引,上面的例子中,如果查询兴趣爱好为“游泳”的用户信息,则会触发全表扫描。这种情况下创建全文索引可很大程度的提高查询效率,而全文索引(full inverted index )就一种倒排索引(inverted file index )的实现。

如果是倒排索引,则文档存储的表内容可表示为:

NumbertextDocuments
1篮球1,200,5001
2唱歌1, 5000, 8000
3旅游200, 3000, 10000
4台球3000, 5200
5游泳5000, 5200
6足球10000

全文索引不仅可以存储文档的ID,还可以存储单词在text的位置信息(position)

NumbertextDocuments[(DocumentId: position)]
1篮球(1: 1),(200: 1), (5001: 1)
2唱歌(1: 2), (5000: 1), (8000: 1)
3旅游(200: 2), (3000: 2), (10000: 2)
4台球(3000: 1), (5200: 2)
5游泳(5000: 2), (5200: 1)
6足球(10000: 1)

最后,倒排索引作为一种索引结构,可以更好的定位数据,并能扩充一些搜索特性,但是也会占用更多的磁盘空间。



喜欢的朋友记得点赞、收藏、关注哦!!!

相关文章:

  • 小刚说C语言刷题—1018三角形类别
  • [预备知识]5. 优化理论(一)
  • Linux 库文件详解
  • 文章六:《循环神经网络(RNN)与自然语言处理》
  • 云盘系统设计
  • EMC PowerStore存储学习之一NVMe磁盘的命名规则
  • 预订接口优化:使用本地消息表保证订单生成、库存扣减的一致性
  • 程序员转行酒店用品客户经理
  • MySQL 中的游标(Cursor)
  • [计算机科学#8]:指令与程序的奥秘
  • c语言的常用关键字
  • WebRtc11:SDP详解
  • AE/PR模板 100个现代文字标题动态排版效果动画 Motion Titles
  • C++ unordered_set unordered_map
  • LearningFlow:大语言模型城市驾驶的自动化策略学习工作流程
  • 2023华为od统一考试B卷【二叉树中序遍历】
  • 5.2算法学习笔记(动态规划)
  • 文章七《深度学习调优与超参数优化》
  • 【东枫科技】AMD / Xilinx Alveo™ V80计算加速器卡
  • pip 常用命令及配置
  • 国羽3比0横扫日本晋级苏迪曼杯决赛,将战韩国与印尼胜者
  • 5月1日,全社会跨区域人员流动量完成33271.4万人次
  • 亚马逊一季度利润增超六成:云业务增速放缓,警告关税政策或影响业绩指引
  • 美乌签署协议建立美乌重建投资基金
  • 山西太原一小区发生爆炸,造成1人遇难21人受伤2人失联
  • 新片|《我仍在此》定档5月,《新·驯龙高手》同步北美上映