Postgres обладает более богатым набором способностей и лучшим оптимизатором; его способность делать хэш-соединения часто делает его намного быстрее, чем MySQL для соединений. Ходят слухи, что MySQL быстрее для простого сканирования таблиц. Также важен механизм хранения, который вы используете под ним.
В какой-то момент масштабирование становится выбором между двумя вариантами: масштабировать, покупая более крупное оборудование, или масштабировать, вводя новые машины (с которыми вы можете передавать данные, использовать их в качестве подчиненных реплик или пытаться настроить мастер-мастер). и у Posgres, и у MySQL есть решения различного уровня качества для такого рода вещей).
Несколько миллионов строк табличных данных помещаются в память стандартного сервера в наши дни; если это все, что вы делаете, вам не нужно беспокоиться об этом - просто оптимизируйте любую базу данных, с которой вам удобнее, чтобы гарантировать, что созданы правильные индексы, все кешируется (и где-то вроде memchached используется там, где это уместно) и т. д.
Люди упоминают, что Facebook использует MySQL; это вроде как правда. Отчасти потому, что они на самом деле используют сотни (тысячи сейчас?) Баз данных mysql, причем все они несут ответственность за свое небольшое сечение данных. Если вы думаете, что можете загрузить facebook в экземпляр MySQL (или postgres, или oracle) ... ну, они, вероятно, хотели бы услышать от вас; -).
Как только вы попадаете в терабайтную землю, все становится сложнее. Существуют специализированные решения, такие как Vertica, Greenplum, Aster Data. Существуют различные "nosql" хранилища данных, такие как Cassandra, Voldemort и HBase. Но я сомневаюсь, что вам нужно пойти на такой крайности. Просто купите немного больше оперативной памяти.