A method for processing a table of data by a computing system, the method comprises: receiving the table of data, wherein the table of data includes a plurality of records, wherein a record of the plurality of records includes a plurality of columns; dividing the table of data into a plurality of data partitions and dividing the data partitions into a plurality of data segments based on a data redundancy encoding scheme; reordering the plurality of columns of each segment of the plurality of data segments based on a key column to produce respective restructured data segments, wherein the key column is a selected column of the plurality of columns based on most probable query requests, and wherein the reordering comprises reordering the plurality of columns of each segment based on the key column such that each respective restructured data segment includes a plurality of sorted columns; storing each respective restructured data segment in a respective computing device of a storage cluster in accordance with storage parameters, wherein the number of computing devices in a cluster corresponds to the number of segments in which a data partition is divided, and wherein the storage parameters include the number of segments each partition was divided into and the data redundancy encoding scheme; receiving a query request; generating a query plan based on the query request, wherein generating the query plan comprises: generating an initial query plan based on the query request; and optimizing the initial query plan based on the storage parameters; executing the query plan on each restructured data segment to produce a respective partial query response; executing the query plan on the respective partial query responses to produce a combined query response. receiving the table of data, wherein the table of data includes a plurality of records, wherein a record of the plurality of records includes a plurality of columns; dividing the table of data into a plurality of data partitions and dividing the data partitions into a plurality of data segments based on a data redundancy encoding scheme; reordering the plurality of columns of each segment of the plurality of data segments based on a key column to produce respective restructured data segments, wherein the key column is a selected column of the plurality of columns based on most probable query requests, and wherein the reordering comprises reordering the plurality of columns of each segment based on the key column such that each respective restructured data segment includes a plurality of sorted columns; storing each respective restructured data segment in a respective computing device of a storage cluster in accordance with storage parameters, wherein the number of computing devices in a cluster corresponds to the number of segments in which a data partition is divided, and wherein the storage parameters include the number of segments each partition was divided into and the data redundancy encoding scheme; receiving a query request; generating a query plan based on the query request, wherein generating the query plan comprises: generating an initial query plan based on the query request; and optimizing the initial query plan based on the storage parameters; executing the query plan on each restructured data segment to produce a respective partial query response; executing the query plan on the respective partial query responses to produce a combined query response. generating an initial query plan based on the query request; and optimizing the initial query plan based on the storage parameters; executing the query plan on each restructured data segment to produce a respective partial query response; executing the query plan on the respective partial query responses to produce a combined query response.