Banda Ancha EU

Comunidad de usuarios
de fibra, móvil y ADSL

hosting en interdominios
143 lecturas y 6 respuestas
  • MySQL y DBA astronómica + indexes

    Helou:

    Tengo un proyecto web (buscador), todo funciona de perlas. Pero tengo un marrón:

    La DB tiene como tabla "dominante" una tabla llamada posts... recoje todos los posts de los blogs + excerpt + tags + contenido + autor y mil cosas más. Tengo índice en los campos necesarios, incluído en autor que es donde tengo problemas.

    SELECT * FROM posts WHERE author = 'ismael', devuelve sólo 38 resultados y sin embargo el count(*) tarda mucho, al igual que la consulta final. El count sobre los 300ms y la consulta final sobre los 150ms. Hace casi 450-500ms, lo que con la generación del código hace en total unos 640 ms de media. Es mucho, estoy pensando en usar un motor externo como Sphinx que ya uso para los enlaces entrantes y salientes. ¿pistas para optimizar MySQL o es que los índices no hacen milagros?

    saludos.

    Este tema lleva más de 6 meses inactivo. Es recomendable que abras un nuevo tema para retomar la conversación.
    • Buenas. Creo recordar que además de los índices que has…

      Buenas. Creo recordar que además de los índices que has utilizado, puedes probar con el comando EXPLAIN. Creo que era algo así:

      Explain select * from tabla

      También si tienes muchos datos en las tablas y has modificado registros, índices y demás...puedes probar con el comando OPTIMIZE TABLA.

      Es recomendable liberar un poco la cláusula WHERE de comandos, es decir, si tienes muchos operadores AND,OR, paréntesis.... Estaría bien echarle un ojo a ver si puedes mejorar dichas consultas para que la búsqueda te la haga más rápido.

      Tampoco es bueno hacer muchas JOIN, ya que al tener que buscar en más tablas...tardará más.

      En fin, suerte.

    • coincido con el compañero, habría que ver las consultas y…

      coincido con el compañero, habría que ver las consultas y evitar en lo posible hacer producto cartesiano entre tablas