当前位置:网站首页 > 技术博客 > 正文

位图索引和普通索引



位图索引(Bitmap Index)就是用位图表示的索引,对列的每个键值建立一个位图,相对于其它索引,占用的存储空间非常小,创建和使用非常快,缺点是修改操作锁粒度大,不适合频繁更新。

如下图,bitmap 索引将每个被索引的列的值作为 KEY,使用每个 BIT 表示一行,当这行中包含这个值时,设置为 1,否则设置为 0。

Bitmap Index

  • 建在值重复度高的列上,建议在 100 到 100,000 之间,如:职业、地市等。重复度过高则对比其他类型索引没有明显优势;重复度过低,则空间效率和性能会大大降低。
  • 特定类型的查询例如 count、or、and 等逻辑操作只需要进行位运算。如:通过多个条件组合查询,。类似这种场景,如果在每个查询条件列上都建立了 Bitmap 索引,则数据库可以进行高效的 bit 运算,精确定位到需要的数据,减少磁盘 IO,并且筛选出的结果集越小,Bitmap 索引的优势越明显。
  • 适用于即席查询、多维分析等分析场景。如果有一张表有 100 列,用户会使用其中的 20 个列作为查询条件(任意使用这 20 个列上的 N 的列),在这些列上创建 20 个 Bitmap 索引,那么所有的查询都可以应用到索引。
  • 值重复度低的列,如:身份证号、手机号码等。
  • 重复度过高的列,如:性别,可以建立 Bitmap 索引,但不建议单独作为查询条件使用,建议与其他条件共同过滤。
  • 经常需要更新修改的列。

在表名为 table_name 上为 siteid 创建 Bitmap 索引

展示指定 table_name 的下索引

删除指定 table_name 的下索引

  • Bitmap 索引仅在单列上创建。
  • Bitmap 索引能够应用在 、 数据模型的所有列和 模型的 Key 列上。
  • Bitmap 索引支持的数据类型如下:

  • 上一篇: 仪器仪表交易网
  • 下一篇: oracle中的内连接
  • 版权声明


    相关文章:

  • 仪器仪表交易网2024-11-07 18:01:01
  • js中怎么取数组里面的数据2024-11-07 18:01:01
  • 王码五笔输入法86版的字根全面吗?2024-11-07 18:01:01
  • 黑客必备工具2024-11-07 18:01:01
  • c语言指针的指针作用2024-11-07 18:01:01
  • oracle中的内连接2024-11-07 18:01:01
  • 珍爱生命创意无限的版面设计2024-11-07 18:01:01
  • linux的fork指令2024-11-07 18:01:01
  • 开窗函数和窗口函数区别2024-11-07 18:01:01
  • 什么是倒排索引技术2024-11-07 18:01:01