database - 使用位图索引删除记录

标签 database indexing bitmap

给出下表

enter image description here

属性 Salary 的位图索引被创建,通过将值分成 4 个范围: 5万以下、5万到6万以下、6万到7万以下、7万以上。

还创建了 Dept 上的另一个位图索引属性。

问题是删除代码为 4 的员工的最佳选择是什么?明确指出是否需要对位图索引进行更改。

这就是我想到的答案。代码为4的员工在CSE部门,薪水95,000

如果将属性 Salary 上的位图索引更改为更多类别,将范围扩展到 70,000-80,000 和 80,000-90,000 以及 90,000-95000 和 95,000 以上,则 95,000 以上的位图索引将是

0,0,0,1,0,0,0,0

CSE 索引部门将是

1,1,0,1,0,0,1,0

薪水 0,0,0,1,0,0,0,0 部门 1,1,0,1,0,0,1,0

和 0,0,0,1,0,0,0,0

临时的 索引 1,0,0,0,0,0,0,0

和 0,0,0,0,0,0,0,0

因此该值被删除。

如果有人请告诉我这是正确的还是有其他方法

最佳答案

在位图索引中进行删除的最有效方法是使用存在位图

即如果记录存在则位值为1,如果记录不存在则位值为0

所以这个场景的存在位图是,

1, 1, 1, 0, 1, 1, 1, 1

每个查询都应该被验证是否存在。因此,对于已删除的记录,AND 操作的结果始终为 0

关于database - 使用位图索引删除记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36722762/

相关文章:

mongodb - 可以在不存在的集合上调用 ensureIndex 吗?

mysql - SQL - 内连接表上的复合索引?

android - 从 OpenLibrary API 在 ImageView 中加载图像

mysql - 自联表 SQL

mysql - 使用数据库(MySql)的生产者/消费者系统,这可行吗?

sql - 编辑所有 View 和存储过程,查找和替换?

c++ - 试图将位图复制到 WMP 渲染器中 -> 颠倒了!

sql - 什么时候需要对主键和外键施加约束?

sql - 没有聚集索引的表

c# - 在 C# 中调整图像大小