Four load balancing strategies are supported to distribute statements over the configured MySQL slave servers:
Chooses a random server whenever a statement is executed.
- random once (default)
Chooses a random server after the first statement is executed, and uses the decision for the rest of the PHP request.
It is the default, and the lowest impact on the connection state.
- round robin
Iterates over the list of configured servers.
- user-defined via callback
Is used to implement any other strategy.
Servers can be prioritized assigning a weight. A server that has been given a weight of two will get twice as many requests as a server that has been given the default weight of one. Prioritization can be handy in heterogenous environments. For example, you may want to assign more requests to a powerful machine than to a less powerful. Or, you may have configured servers that are close or far from the client, thus expose different latencies.