Um pouco tarde para responder a isso, mas, desde que está sendo pesquisada, isso será útil para alguém:
O WordPress usa o esquema do banco de dados EAV para parte de sua implementação. Isso afeta os dados e os usuários. (Eles são mantidos em tabelas separadas)
Para explicá-lo do ângulo de dados:
Juntamente com os detalhes relacionados diretamente à postagem acessíveis em wp_posts, várias meta são postadas na tabela wp_postmeta para cada postagem. Quaisquer dados relevantes para a postagem (ou tipo de postagem personalizada).
O problema é que, se você tem HEAPS de postagens ou páginas (ou postagens / dados personalizados), fica muito lento procurar qualquer propriedade encontrada na meta. Primeiro você pesquisa todas as entradas na tabela-meta pelos critérios necessários e, em seguida, obtém a postagem relevante da tabela. O motivo é que você precisa procurar CADA critério separadamente. Então, uma pesquisa por tag, você obtém as postagens com o valor X para 'meta1', depois procura por um segundo critério, por exemplo, critérios personalizados e obtém os IDs das postagens com customcriteriavalue1 nos critérios customizados. os detalhes da postagem da tabela de postagens com essa interseção.
Como exemplo - coloque 30.000 produtos no WooCommerce e você terá ~ 1.800.000 linhas em wp_postmeta, conforme explicado na resposta abaixo:
Postar meta versus tabelas de banco de dados separadas
Portanto, não apenas isso tornará a pesquisa muito muito ineficiente (especialmente quando você se auto-junta no wp_postmeta para vários critérios), mas também consulta uma única linha entre 1,8 mil linhas causa um impacto no desempenho.
Deficiência de esquema de EAV.
Assim, com muitas postagens, a implementação do WordPress db torna as pesquisas complexas muito lentas.
A execução de um site WordPress com milhares de postagens é bastante viável, se você usar plug-ins de cache. Você pode ir ainda mais. Mas as pesquisas serão um problema.
............
O mesmo acontece com os usuários - o wp_usermeta também usa o mesmo formato EAV. Portanto, se você recebe muitos usuários e possui muitos plugins que armazenam vários dados do usuário no wp_usermeta, você receberá o mesmo desempenho.
Sem mencionar que há tantos usuários, é provável que você já tenha um grande número de postagens - a menos que seu aplicativo seja algo relacionado principalmente aos usuários (CRM etc), e você opte por armazenar seus dados de usuário em wp_usermeta em vez de wp_postmeta . (Embora improvável).
.........
Existem alguns plugins que tentam contornar esse problema, como o Meta Accelerator.
https://wordpress.org/plugins/meta-accelerator/
Este plugin pega todos os dados para qualquer tipo de postagem que você escolher e os coloca em tabelas simples. Isso acelera muito a pesquisa e também consulta qualquer valor singular.
Mas esse plugin ainda está em sua infância.
Como alternativa, você pode instalar o ElasticSearch no servidor e usar o plug-in ElasticPress ou outro plug-in que o integre ao WordPress para acelerar essas pesquisas.
PHP
parte da pilha não será seu problema (o Facebook é construído com um PHP modificado), masMySQL
muito bem pode ser limitante.