En mi opinión es más importante cómo se hacen las cosas que la tecnología usada a no ser que quieras algo que vaya a la décima de segundo en plan fórmula uno.
Se trata de optimizar las consultas a base de datos, de usar la cache para ni siquiera consultar lo mismo una y otra vez (fíjate en el cacheado de followers en twitter o de amigos en facebook, que no acaba de ser muy exacto, dandote datos distintos en dos pantallas), utilizar herramientas para detectar problemas de rendimiento (profilers), de enviar el html comprimido, de enviar css y js minificados... En realidad de un montón de cosas que tanto para una tecnología como otra tendrás que hacer.
Mi consejo habiendo probado java, .net y php, siempre con relacionales (eso sí) oracle, mysql y sqlserver, es que utilices la que más conozcas y que la exprimas al máximo.
En todos estos portales grandes (rollo facebook o twitter) en realidad tienen varias máquinas y distribuyen la carga. Con lo que tu programa debería poderse distribuir, para esto te podrías plantear también tener eso en tu capa de acceso a datos. Hacer eso de primeras sin saber el tráfico que vas a tener me parece muy fuerte para empezar. Yo haría bien una separación en tres capas, de manera que si en algún momento tienes tantísimo tráfico como para plateartelo puedas de una manera "ordenada" reemplazar la capa de datos, por ejemplo. Si tienes tanto tráfico tendrás también ingresos como para plantearte más tiempo de desarrollo ;)
Para hacer una aplicación bien optimizada y organizada en capas tienes que conocer bastante bien la plataforma, por eso yo escogería la que más conozca.
Un saludo.