Patent ID: 7496589

Claim:
A method implemented by a processor executing instructions stored on a tangible computer-readable medium comprising: obtaining a table comprising at least one row wherein each row comprises at least one column, and wherein each row is associated with an index key value; choosing a block size and partitioning the table into at least one block wherein each one of the at least one row is assigned to respective one of the at least one block and also wherein each of the at least one block is not larger than the block size; creating a block index that indicates which of the at least one block is assigned each one of the at least one row; and compressing the at least one block to produce at least one compressed block and then storing the at least one compressed block on a storage device, wherein each line of data of the at least one block is separately compressed using a respective compression algorithm that is selected as a desired algorithm based upon testing a plurality of different compression algorithms, and wherein the compressing uses at least two different compression algorithms to compress different lines of data for the same block.