¿Sphinx sería una buena solución para resolver el problema del servidor con lecturas pesadas de MySQL?

¿Sphinx sería una buena solución para resolver el problema del servidor con lecturas pesadas de MySQL?

Estoy trabajando en un sitio que creo que recibe alrededor de 70.000 visitas al día y utiliza muchas consultas que utilizan UNION'saproximadamente 45 tablas diferentes; estas tablas generalmente varían desde aproximadamente 15.000 filas hasta aproximadamente 500.000 filas en cada tabla.

Hemos optimizado lo query cachemejor posible, pero cada vez que se cambia una de las tablas y se deben eliminar los datos en el caché, el servidor comienza a bloquearse y MySQL tmp dirse llena y la carga del servidor se dispara y lo siguiente tiene que debe hacerse para solucionar el problema:

  1. Detener mysql (la carga vuelve a la normalidad)
  2. reparar las tablas de la base de datos
  3. borrar caché de mysql
  4. limpiar Memcache
  5. reparar tablas de base de datos nuevamente
  6. reiniciar mysql

Sé que la replicación es probablemente la mejor idea, pero probablemente también la más cara. Entonces me pregunto si utilizar Sphinxdesdehttp://sphinxsearch.com/ayudaría mucho?

Lo usé antes para otro sitio para poder realizar búsquedas de texto completo en tablas INNODB, así que tengo un poco de conocimiento sobre cómo funciona, pero no estoy seguro de cómo manejaría algo como esto.

¿Utiliza sus propios métodos de almacenamiento en caché? Como no querría cambiar a esto y seguir teniendo los mismos problemas con Sphinx.

Editar:A continuación se muestra una captura de pantalla EXPLAIN(falta la primera línea, tuve problemas con el programa de captura de pantalla)

Actualizar:El sitio ahora solo recibe 30/k visitantes/día.

ingrese la descripción de la imagen aquí

Respuesta1

Debe identificar y resolver los problemas de la base de datos, 70.000 visitas por día no es mucho y MySQL es capaz de manejar esa cantidad de trabajo. Debe descargar y utilizar mysqlreportuna herramienta similar para analizar y ajustar el uso de los buffers MySQL MyISAM e InnoDB (también recomendaría cambiar a InnoDB si todavía está usando MyISAM). El siguiente paso es habilitar el registro de consultas lentas en MySQL y analizar el registro de consultas lentas diariamente utilizando pt-query-digestla herramienta y EXPLAINel comando MySQL. Probablemente su base de datos carezca de índices adecuados.

información relacionada