IQ是Sybase公司推出的特别为数据仓库、决策支持分析、数据分析/挖掘等查询分析密集型应用而设计的关系型数据库。IQ的架构与大多数关系型数据库不同,它特别的设计用以支持大量并发用户的即席查询、统计分析。其设计目标首先考虑查询性能,其次是完成批量数据更新的速度。而传统关系型数据库引擎的设计侧重考虑在线的事务处理。
IQ数据库采用列存储数据,而不是按行,它的每张表是一组相互独立的页链的集合,每一页链存储表中的一列。所以有50 列的表将有50 条相互独立的页链,每一列都有一条页链与之对应,而不是象其他数据库引擎,一张表对应一条页链。所以当IQ查询所需要的列时,只针对所需的列进行扫面,而不需扫描全表。
IQ采用位图索引(针对低基数)和Bit Wise索引(针对高基数数据的查询,包含聚合运算和WHERE 子句中的范围谓词)技术,用以减少给定查询或更新的工作量,在数据统计、挖掘具有高度的非选择性上,有很高的优越性。
IQ目前的索引类型:
1、Fast Projection Indexes (FP):该索引就是简单的存储列本身,也是IQ的缺省索引。如果你认为常常需要读取某列完整的数据,那么你可以无须定义任何索引。
2、Low Fast Indexes (LF):该索引针对低基数的列使用一个称为‘编码’的方法。这对减少数据冗余非常有效。编码尤其适用于大量重复的数据。该方法典型的适用于取值范围<1500的低基数列。
3、High Non Group Index (HNG):对于基数超过1500的列,Sybase使用专利的索引技术——Bit Wise索引。该索引在你需要联合使用范围搜索与计算时尤为有效。例如查询“英语大于90分的总成绩”,正如各类位图索引,该方法的优势之一就是,运算查询可以直接由索引得到结果,而不需读取数据。
4、High Group Index (HG):该索引本质上是B-Tree索引。然而,其原理是你只需为那些你认为可能使用“group”操作的列定义索引,尤其是在你需要联合使用低基数与高基数的查询的时候。
5、Word Index (WD):该索引用于文本比较。主要用于关键词或字符串搜索。
6、Compare Index (CMP):该索引使列与列之间的比较更加高效。
7、Join Index:正如其名,该索引用于处理表连接的查询。正像已支持的大量索引一样,该索引在索引需求能够被预测时最为有效。
创建索引语句:如创建HNG索引:Create HNG Index ShipIx on dbl.Sales(ShipDate)