1. A method, comprising: receiving a plurality of data packages at one or more hardware database servers, each of the plurality of data packages including a plurality of packets: receiving a query that includes one or more selection criteria; indexing the query to generate an initial indexing set; creating, using the one or more hardware database servers, one or more lists of one or more packets for each of the plurality of data packages, the one or more lists configured to index a sequence of packets within each of the plurality of data packages by source address information and destination address information, the one or more lists indicating, for each of the plurality of data packages, an offset of each of: (a) a first packet and a last packet in the sequence that contains given source address information, and (b) a first packet and a last packet in the sequence that contains given destination address information, the one or more lists further configured to allow the one or more hardware database servers to bypass packets within each of the plurality of data packages during execution of the query using one or more of the offsets, each of the offsets provided as a number of bytes; storing both the query and the initial indexing set; passing both the query and the initial indexing set to a parser to generate a symbolic program; compiling and executing the symbolic program to retrieve, by the one or more hardware database servers and based at least in part upon the one or more lists, one or more packets that satisfy the query, wherein retrieving the one or more packets includes executing a plurality of threads to satisfy the query; creating a table, using the one or more hardware database servers, that includes data from each retrieved packet matching the one or more selection criteria; and combining results from the plurality of threads to generate a final result of the query.