Optimización del funcionamiento de MySQL - una lección
La base de datos de MySQL que apoyaba este blog consumía la cantidad masiva de CPU, que llevan con eficacia para localizar yendo abajo de 3-4 veces esta semana. Conocía a un culpable obvio. Sin embargo la realidad diferenció.
Sabía que tenía por algún tiempo una pregunta enorme, que no fue depositada, y que soy probable contribuir a la carga del servidor de MySQL:
cat_ID SELECTO, cat_name COMO categoría, cuenta (*) COMO “cuenta”
De $wpdb->categories, $wpdb->post2cat, $wpdb->posts
DONDE cat_ID = category_id y
¡category_nicename! = “título” e identificación = post_id y
el post_status = “publica”
GRUPO POR el cat_name
TENIENDO cuenta (*) > 10
ORDEN POR la “cuenta” DESC
LÍMITE 0, 10
No podría ver una manera obvia de optimizar esto sin la contenencia de la funcionalidad. ¡En caso de que usted wondeering substituyendo el category_nicename! = el “título” con el cat_ID = 37 no ayuda.
También pensé en usar el registro lento de la pregunta para establecer claramente el problema. No se requirió afortunadamente ningunos de ellos. Conseguí un email de alta ayuda amistosa de la carga de WestHost. Jonny descubrió en varias ocasiones funcionando la “DEMOSTRACIÓN POR COMPLETO PROCESSLIST; ” que el culpable era:
SELECCIONE el cat_ID distinto, cat_name
De st_categories, st_post2cat
ORDEN POR el category_nicename;
Esto me tomó por sorpresa. Tomas de la pregunta del Th dondequiera entre 3-5 segundos. En altas cargas con peticiones simultáneas múltiples que es bastante bueno sobrecargar el servidor. La solución era engañoso simple:
SELECCIONE el cat_ID distinto, cat_name
De st_categories
ORDEN POR el category_nicename;
La pregunta original era redundante y derrochador. Me prepuse originalmente exhibir solamente categorías con uno o más postes en ellos. Al menos en alguna parte abajo de la línea olvidé agregar DONDE cláusula. Todas mis categorías tienen hoy postes. Tan simplemente la eliminación de st_post2cat de de lista es bastante buena derribar el tiempo de ejecución a 0.01 segundos.
Las lecciones para llevar son:
- Nunca conjeture las preguntas del embotellamiento; encuéntrelo.
- La herramienta simple como “LISTA DE PROCESO COMPLETA de la DEMOSTRACIÓN” es a menudo tan buena como definitiva, con todo analizar más difícilmente la herramienta como registro lento de la pregunta.
- Tener buena ayuda de su abastecedor del recibimiento de tela no lastima tampoco
Archivado bajo software del CMS, base de datos, noticias de título, cómo a, favorable Blogging, RDBMS, nota de la tecnología, Web, WordPress |
|
RSS 2.0 |
Envíe por correo electrónico este artículo
Usted puede también tener gusto de leer |


Agregue a los favoritos de Technorati

































10 de mayo de 2006 en el 2:22
Hola,
Mis wordpress acaban de crashied mi servidor semi-dedicado debido a la alta carga de la CPU.
Instalé tan el WP-Escondrijo enchufable y acabo de encuentro este blog. Pedí mi admin webhosting para hacer esta optimización y aquí soy lo que él me escribió:
Comprobé todos sus archivos para saber si hay el texto “SELECCIONO el cat_ID distinto”, y no podría encontrar un fósforo.
También comprobé para saber si hay el “cat_ID SELECTO, cat_name COMO categoría, cuenta (” y no podría encontrar un fósforo tampoco.
También comprobé para saber si hay “st_post2cat” y no podría encontrarlo, así que pueden funcionar con una diversa versión del código.
Acabo de preguntarme si usted podría ayudarme con respecto a esta materia. BTW, soy los wordpress corrientes 2.0.2
Gracias por su tiempo… que usted puede apenas contestar esto a mi email.
Respetos,
Paulus
10 de mayo de 2006 en el 6:20
El código fue especificado solamente como ejemplo. Es en un enchufable yo escribió para este blog. Usted no lo encontrará en la instalación genérica de los wordpress. Sin embargo si usted tiene un blog altamente comentado usted puede beneficiarse de esta técnica de optimización del wp-escondrijo.
23 de junio de 2006 en el 4:08 P.M.
Estoy también en Westhost y he estado trabajando con la gente como Jonny para encontrar una solución a mis problemas del blog. Estoy utilizando también el WP-Escondrijo, pero ahora mi blog está consumiendo 4.52% del servidor entero de mi VPS. Ia m tan técnico como usted, así que tenemos slow-going, pero fijaré cualquier solución que encuentre.
¡Tks!