读书笔记整理七:位图索引
位图索引主要用来解决重复数据导致查询性能低的问题
位图索引比较适合诸如对索引的键值进行count这样的操作,也非常适合在索引字段间进行
"OR"、"AND"这样的逻辑运算操作
什么时候使用位图索引?
位图索引的引入主要是解决海量数据情况下数据库的查询性能的问题,它的范围应该是OLAP或者
数据仓库类型的数据库,而不是OLTP,OLTP系统的特点并不适合位图索引。位图索引比较适合查询,
如果在OLTP的系统,有大量的DML操作,在这种情况下,位图索引会起到反作用,会阻塞会话,即使更新
的不是同一条记录也会造成锁,而B树索引则不会。
位图索引适用于下面两种情况:
重复率高的数据
特定类型的查询(比如逻辑与或count等)
如果要使用B树索引,可能要建立联合索引,不过可能会占用大量的磁盘空间,甚至索引占用的空间
比原表还要大
总结:
位图索引适合海量数据的OLAP或者数据仓库系统(只适合查询使用)
适合特定的SQL操作(count,逻辑或,逻辑与)
不适合OLTP系统(OLTP系统会有大量并行的DML操作)
--------整理自《让oracle跑得更快2》
位图索引主要用来解决重复数据导致查询性能低的问题
位图索引比较适合诸如对索引的键值进行count这样的操作,也非常适合在索引字段间进行
"OR"、"AND"这样的逻辑运算操作
什么时候使用位图索引?
位图索引的引入主要是解决海量数据情况下数据库的查询性能的问题,它的范围应该是OLAP或者
数据仓库类型的数据库,而不是OLTP,OLTP系统的特点并不适合位图索引。位图索引比较适合查询,
如果在OLTP的系统,有大量的DML操作,在这种情况下,位图索引会起到反作用,会阻塞会话,即使更新
的不是同一条记录也会造成锁,而B树索引则不会。
位图索引适用于下面两种情况:
重复率高的数据
特定类型的查询(比如逻辑与或count等)
如果要使用B树索引,可能要建立联合索引,不过可能会占用大量的磁盘空间,甚至索引占用的空间
比原表还要大
总结:
位图索引适合海量数据的OLAP或者数据仓库系统(只适合查询使用)
适合特定的SQL操作(count,逻辑或,逻辑与)
不适合OLTP系统(OLTP系统会有大量并行的DML操作)
--------整理自《让oracle跑得更快2》