Distributing nodes across drupal sites
Normally with drupal you would not have several databases each with their own fragment of the database, and combined you have a whole site.

With drupal 7, drupal now supports database masters and slaves from within the application. What this means now is say you need 3 database servers to support your sites non-functional requirements (availability, performance etc), you can now add:

&lt;?php
$databases['default']['default'] = array(
  'driver' =&gt; 'mysql',
  'database' =&gt; 'drupaldb1',
  'username' =&gt; 'username',
  'password' =&gt; 'secret',
  'host' =&gt; 'dbserver1',
);
$databases['default']['slave'][] = array(
  'driver' =&gt; 'mysql',
  'database' =&gt; 'drupaldb2',
  'username' =&gt; 'username',
  'password' =&gt; 'secret',
  'host' =&gt; 'dbserver2',
);
$databases['default']['slave'][] = array(
  'driver' =&gt; 'mysql',
  'database' =&gt; 'drupaldb3',
  'username' =&gt; 'username',
  'password' =&gt; 'secret',
  'host' =&gt; 'dbserver3',
);
?&gt;


This definition provides a single "default" server and two "slave" servers. Note that the "slave" key is an array. If any target is defined as an array of connection information, one of the defined servers will be selected at random for that target for each page request. That is, on one page request all slave queries will be sent to dbserver2 while on the next they may all be sent to dbserver3. 

The above is straight from the docs ;)

I would recommend the above approach as this is a supported configuration, if you decide to create your own custom drupal schema or load splitting algorithm - you now have to support it.

With drupal 6 - you are pretty much forced to use pressflow. Pressflow is a performance based fork from the drupal code base that tries to keep 100% API compatibility with drupal. Lullabot wrote an awesome article on database replication with pressflow 6.

It turns out lullabot released their views 3 slave query module on github as well, fork away!