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)
