A única resposta útil é avaliar seu sistema e ver o que você precisa para atingir suas metas. Uma resposta mais específica é difícil devido ao grande número de configurações possíveis (hardware, software, configuração, carga externa, uso, etc ...).
Geralmente, no entanto, 1 milhão de ocorrências / hora pode não ser tão difícil, dependendo de quantas consultas você tem por ocorrência e da complexidade delas. Por exemplo, 1 query / hit calcula 280 consultas por segundo, que devem ser facilmente executáveis no hardware intermediário. Por exemplo, eu tenho um servidor MySQL de baixo custo com média de 150 consultas / seg com 10% de uso da CPU. Tenha em mente que este é um sistema bem otimizado com uso de leitura pesada.
Eu começaria olhando se um servidor é capaz de lidar com a carga que você espera, pois será muito mais barato e mais fácil de configurar, mesmo que exija um hardware mais avançado. Se um único servidor não parecer viável, eu veria um esquema de particionamento simples: dividir as gravações em vários servidores MySQL independentes (exatamente como depende do que você está fazendo).
Não há dúvidas de outros projetos mais complexos de clustering / particionamento, mas eu tentaria manter o sistema o mais simples possível, especialmente se você não estiver familiarizado com a configuração e uso deles.