Customize load balancing algorithms. Explore options for the slave_selection_criteria parameter, including adaptive routing and least-global-connections strategies.
The Read/Write Split Router (readwritesplit) load balances read-only queries between one or more replica servers. It selects a replica server to execute a query using criteria configured by the slave_selection_criteria parameter.
ADAPTIVE_ROUTING
Selects using average response times
LEAST_BEHIND_MASTER
Selects based on replication lag
LEAST_CURRENT_OPERATIONS
The uses adaptive routing when the slave_selection_criteria parameter is set to ADAPTIVE_ROUTING.
In this mode, the router measures average server response times. When the router routes queries, it compares the response times of the different replica servers. It favors the faster servers for most queries, while still guaranteeing some traffic on the slowest servers.
The uses the replica server that is least behind the primary server when the slave_selection_criteria parameter is set to LEAST_BEHIND_MASTER. This mode is only compatible with
In this mode, the router measures replica lag using the Seconds_Behind_Master column from The replica server that has the lowest value is considered to be the least behind the primary server.
Set the replica selection criteria by configuring the slave_selection_criteria parameter for the Read/Write Split Router in maxscale.cnf:
Restart the MaxScale instance.
This page is: Copyright © 2025 MariaDB. All rights reserved.
Selects based on number of active operations (the default)
LEAST_GLOBAL_CONNECTIONS
Selects based on number of connections from MariaDB MaxScale
LEAST_ROUTER_CONNECTIONS
Selects based on number of connections from the service
[split-router]
type = service
router = readwritesplit
...
slave_selection_criteria = LEAST_GLOBAL_CONNECTIONS$ sudo systemctl restart maxscale