给出下表
属性 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/