1. A system configured to load data into a relational database, said system comprising: a host configured to receive a request to load data from a load file into a database, sample the load file; determine a first profile of the load file based on the samples; determine at least one compression scheme for the data in the load file based on its profile; and compress the data in the load file based on the at least one compression scheme as the data is loaded into the database; and at least one hardware accelerator comprising a memory for storing compressed data that is to be indexed and a processor configured to determine a second profile of the compressed data that is to be indexed based on a machine code database instruction, divide the compressed data that is to be indexed into a set of balanced partitions based on the second profile, execute a program of machine code database instructions based on the second profile, wherein the program of machine code database instructions instruct the hardware accelerator to distribute the compressed data that is to be indexed in the hardware accelerator memory into partitions in the hardware accelerator's memory, build, in parallel, a sub-index for each partition of the compressed data that is to be indexed, and determining an index based on a combination of the sub-indexes.