1. An apparatus comprising: at least one processor; a memory coupled to the at least one processor; a plurality of network interfaces coupled to a plurality of networks that are coupled to a plurality of nodes, each of the plurality of networks comprising a communication path between at least two of the plurality of nodes, each node comprising at least one processor and memory, a first of the plurality of nodes including first data in a distributed database and a second of the plurality of nodes including second data in the distributed database; and a query optimizer residing in the memory and executed by the at least one processor, the query optimizer taking network choice into consideration when executing a database query to the distributed database that retrieves the first data and the second data in the distributed database by considering characteristics of the plurality of networks between the apparatus and the first and second nodes in selecting at least one of the plurality of networks for executing the query, wherein the query optimizer selects the at least one of the plurality of networks based on historical information that includes which of the plurality of networks were used during at least one previous execution of the query.