Supongo q cuando dices en "base" dividir una tabla te referiras a crear varaias tablas en "base" a un criterio ... es decir:
Supongamos una tabla que accedemos (normalmente) por el campo "nombre" .. estos nombres se pueden desglosar por orden alfabetico su primera letra de inicio quedando tablas como:
A_nombre
B_nombre
C_nombre
D_nombre
etc ...
A la hora de acceder a ellas lo primero que tendremos que hacer es formar el nombre de la tabla q se va acceder via por ejemplo (PHP se podria hacer igual con Mysql directo):
$nombre="Antonio";
$letra_inicio=$nombre[1]; // obtener la letra inicio.
$tabla_acceder=$letra_inicio.'_nombre'; // se concatena la letra inicio con el sufijo q le damos a las tablas
$sql="SELECT * FROM $tabla_acceder WHERE nombre='$nombre'";
Con ese método se complican las consultas a "toda" la BD (ya q ahora estan en varias tablas) pero igual se puede implementar.
Personalmente no me gusta este método (y lo he visto en un webmail .. @mail (escrito en Perl .. pero usa Mysql en el fondo) ...
No sé hasta q punto "evitaria un colapso" de una BD si lo q suele "colapsar" una BD son las conexiones a la BD entera .. ?
Un saludo,