Es un poco tarde para responder a esto, pero como viene para una búsqueda relevante, esto será útil para alguien:
WordPress utiliza el esquema de base de datos EAV para parte de su implementación de base de datos. Esto afecta tanto a los datos, como a los usuarios. (Se mantienen en tablas separadas)
Para explicarlo desde el ángulo de datos:
Junto con los detalles relacionados directamente a la publicación en wp_posts, numerosos meta se publican en la tabla wp_postmeta para cada publicación. Cualquier dato relevante para la publicación (o tipo de publicación personalizada).
El problema con eso es que, si tiene HEAPS de publicaciones o páginas (o publicaciones / datos personalizados), es bastante lento buscar cualquier propiedad que se encuentre en el meta. Primero busca en todas las entradas en la tabla meta para los criterios que necesitas, luego obtén la publicación relevante de la tabla. Lo bueno es que necesitas buscar CADA criterio por separado. Entonces, una búsqueda de etiqueta, obtiene las publicaciones con el valor X para 'meta1', luego busca el segundo criterio, por ejemplo, customcriteria y obtiene las ID de las publicaciones con customcriteriavalue1 en customcriteria, Y luego toma la intersección de estas y luego va a obtener los detalles de la publicación de la tabla de publicaciones con esa intersección.
Como ejemplo: coloque 30,000 productos en WooCommerce y terminará con ~ 1,800,000 filas en wp_postmeta como se explica en la siguiente respuesta:
Tablas de bases de datos posteriores a la comparación meta / meta
Por lo tanto, no solo esto hará que la búsqueda sea muy ineficiente (especialmente cuando realiza uniones automáticas en wp_postmeta para múltiples criterios), sino que incluso la consulta de una sola fila de entre 1,8 mil filas provoca un impacto en el rendimiento.
Deficiencia del esquema EAV.
Entonces, con una gran cantidad de publicaciones, la implementación de WordPress db hace que las búsquedas complejas sean muy lentas.
La ejecución de un sitio de WordPress con miles de publicaciones es bastante factible, si utiliza complementos de almacenamiento en caché. Puedes ir aún más. Pero las búsquedas serán un problema.
............
Es lo mismo con los usuarios también: wp_usermeta también usa el mismo formato EAV. Entonces, si obtiene muchos usuarios y tiene muchos complementos que almacenan varios datos de usuario en wp_usermeta, tendrá el mismo impacto de rendimiento.
Por no mencionar con tantos usuarios, es probable que ya tenga un gran número de publicaciones, a menos que su aplicación sea algo que tenga que ver con los usuarios en su mayoría (CRM, etc.), y elija almacenar sus datos de usuario en wp_usermeta En lugar de wp_postmeta. (Aunque poco probable).
.........
Hay algunos complementos que intentan solucionar este problema, como Meta Accelerator.
enlace
Este complemento toma los datos de cualquier tipo de publicación que elija y los coloca en tablas planas. Esto acelera mucho la búsqueda y también acelera la consulta de cualquier valor singular.
Pero ese plugin está en su infancia todavía.
Alternativamente, puede instalar ElasticSearch en el servidor y usar el complemento ElasticPress u otro complemento que lo integre en WordPress para acelerar dichas búsquedas.