The design of Vertica is based on a column store architecture in which the values for each single column (or attribute) are stored contiguously on disk. This approach provides an order of magnitude increase in speed.
To process a query, a row store reads all of the columns in all of the tables named in the query, regardless of how wide the tables may be and how many columns are actually needed. Quite often, queries only use two or three columns from tables of up to several hundred columns, resulting in a great deal of unnecessary data retrieval.
Vertica, however, reads the columns from database objects called Projections, which are described in the Projections section of this document. It does not waste resources by reading large numbers of unused columns. Every byte of data is used by the execution engine. For example, consider this simple two-table schema:
Suppose you want to execute this query:
SELECT A, C, N
FROM Table1, Table2
WHERE H = J
A row store has to read 16 columns (A through H and J through Q) from physical storage for each tuple in the result set. A column store with a query-specific projection only has to read three columns (A, C, and N).