How to get core to leverage a MySQL master/slave configuration?
Here's how I currently implement this.

First you need to set up a SelectQueryExtender class like this:

class SlaveTarget extends SelectQueryExtender {
  public function __construct(SelectQueryInterface $query, DatabaseConnection $connection) {
    if ($connection-&gt;getTarget() != 'slave') {
      $connection = Database::getConnection('slave', $connection-&gt;getKey());
    }
    parent::__construct($query, $connection);
    $this-&gt;addTag('SlaveTarget');
  }
}


Once you have that, then all you have to do is get all the other queries to extend the extender. :) if that makes sense. Here's the snippet.

/**
 * Implements hook_query_alter().
 */
function example_query_alter(QueryAlterableInterface $query) { 
  if (is_a($query, 'SelectQuery') &amp;&amp; !$query-&gt;hasTag('SlaveTarget')) {
    $query-&gt;extend('SlaveTarget');
  }
}


And now all your SelectQuery hit the slave ;-) This is the only way I've been able to accomplish this. Anyways it works great.

Also if you have this on a custom module you can set up the SlaveTarget to be it's on file SlaveTarget.inc and add a files[] = SlaveTarget.inc to your module info file.