博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在不清楚数据表字段数据分布的情况下,应该创建什么类型的索引?
阅读量:2510 次
发布时间:2019-05-11

本文共 697 字,大约阅读时间需要 2 分钟。

在讨论之前,先看看关系型数据库常见的索引类型:

1.位图索引,适用于该字段重复数据很多的情况;

2.B+树索引,适用于该字段重复数据不多的情况。

在不清楚数据表字段数据分布的情况下,应该创建什么类型的索引?个人觉得以上两种都不太适用,可以尝试使用第3类的索引:

3.倒排索引,在搜索引擎使用较多,适用于大多数的情况。

使用普通的文本文件格式存储倒排索引,格式为:

value:rowid(行标识码),字段值对应value,rowid对应该行的标识码。

要注意的是,在创建倒排索引时,倒排索引的key需要按ascii码排序。

同时,为了加快搜索的速度,为倒排索引创建索引的元数据,包括:

1.倒排索引文件的最大值和最小值。

2.倒排索引文件索引。

样例元数据如下:

[data]

min:1(该字段最小值)

max:100(该字段最大值)

[index]

1:value,offset(索引文件第1行的字段值和索引文件的偏移量)

10000:value,offset(索引文件第10000行的字段值和索引文件的偏移量)

......

n:value,offset(索引文件第n行的字段值和索引文件的偏移量)

在实际查询时,给出查询条件,通过读取索引的元数据可以很快的定位到该查询条件对应的倒排索引,再通过倒排索引查询数据。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/6906/viewspace-1991374/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/6906/viewspace-1991374/

你可能感兴趣的文章
MySql的数据库文件
查看>>
找出一组数里出现频率最高的3个数(1.3)
查看>>
BigDecimal默认用四舍五入方式
查看>>
基于注解的SpringMVC
查看>>
Html+Css实现九大行星动画效果
查看>>
【20190405】JavaScript-整理一些常用正则式
查看>>
git 常用命令
查看>>
【光影魔术手】简单使用
查看>>
关于sqoop与datax。 和sqoop to oracle插件OraOop
查看>>
国内其他的maven库
查看>>
关于 控制反转与依赖注入 对初学者的一点帮助
查看>>
MySQL学习笔记(一)Ubuntu16.04中MySQL安装配置(5.6优化、错误日志、DNS解决)
查看>>
解决NLPIR汉语分词系统init failed问题
查看>>
袖珍C库
查看>>
深入理解JavaScript系列(10):JavaScript核心(晋级高手必读篇)
查看>>
Angularjs演示Service功能
查看>>
Unable to launch the IIS Express Web server
查看>>
黑客与画家 第七章
查看>>
Tomcat实践
查看>>
第二次冲刺计划周第四天
查看>>