Votre conception originale est basée sur des principes solides. Si cela vous aide, cette stratégie est connue sous le nom de partitionnement horizontal ou partitionnement . Il fournit :
1) Une plus grande évolutivité - car chaque fragment peut vivre sur un matériel séparé si nécessaire.
2) Une plus grande disponibilité - car la défaillance d'un seul fragment n'a pas d'impact sur les autres fragments
3) Meilleures performances - car les tables recherchées ont moins de lignes et donc des index plus petits, ce qui accélère les recherches.
La suggestion de votre collègue vous amène à une configuration de point de défaillance unique.
En ce qui concerne votre question sur 3 pools de connexion de taille 10 contre 1 pool de connexion de taille 30, la meilleure façon de régler ce débat est avec un benchmark. Configurez votre application dans chaque sens, puis effectuez des tests de résistance avec ab (Apache Benchmark) et voyez quel moyen fonctionne le mieux. Je soupçonne qu'il n'y aura pas de différence significative, mais faites le test pour le prouver.