Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

192
Vistas
Pregunta sobre el almacenamiento/recuperación de datos para una página compleja
  1. Mi pila es php y mysql.
  2. Estoy tratando de diseñar una página para mostrar los detalles de un fondo mutuo.
  3. Los datos de un solo fondo se distribuyen en 15-20 tablas diferentes.
  4. Actualmente, mi front-end es una página php de fuerza bruta que consulta/une estas tablas usando 8 consultas diferentes para un solo esquema. Es desordenado y de bajo rendimiento.

Estoy considerando alternativas. Lo bueno es que los datos cambian solo una vez al día, por lo que puedo hacer un preprocesamiento.

Una opción que estoy considerando es ejecutar estas consultas para cada fondo (alrededor de 2000 fondos) y crear un objeto json complejo para cada uno de ellos, almacenarlo en mysql indexado para el código del fondo, recuperar el json en tiempo de ejecución y mostrar el datos. Estoy pensando en usar la función mysql json_object() simple para crear json y json_decode en php para obtener los valores para mostrar. ¿Es este un buen enfoque?

Tuve la tentación de almacenarlos en una tienda MongoDB separada, ¿sería eso una exageración para esto?

¿Alguna otra sugerencia?

¡Muchas gracias!

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Para cumplir con su objetivo de visitas rápidas a la página, su enfoque de ejecución nocturna es muy bueno. Podría generar objetos JSON con sus datos destilados, o incluso páginas HTML renderizadas previamente, y almacenarlas.

Ciertamente puede almacenar objetos JSON en columnas MySQL. Si no necesita el servidor de la base de datos para buscar los objetos, simplemente use los tipos de datos TEXT (o LONGTEXT ) para almacenarlos.

En mi opinión, agregar un nuevo tipo de servidor (mongodb) a sus operaciones para almacenar unos pocos miles de objetos JSON no parece valer la pena. Sin embargo, si encuentra necesario buscar el contenido de sus objetos JSON, otro tipo de servidor podría ser útil.

Otras cosas a considerar:

  1. Optimice sus consultas SQL. Lea: https://use-the-index-luke.com y otras fuentes de buena información. Considere sus consultas una por una comenzando con la más lenta. Use el comando EXPLAIN o incluso EXPLAIN ANALYZE para que su servidor MySQL le diga cómo planea cada consulta. Y juiciosamente agregue índices. Con la etiqueta de optimización de consultas aquí en StackOverflow, puede obtener ayuda. Muchas consultas se pueden optimizar agregando índices a MySQL sin cambiar nada en su código php o sus datos. Por lo tanto, este puede ser un proyecto en curso en lugar de un gran lanzamiento de software nuevo.

  2. Considere medir sus tiempos de consulta. Puede hacer esto con el registro de consultas lentas de MySQL . El objetivo de esto es identificar sus "docenas sucias" de consultas más lentas en un período de tiempo particular. Entonces, vea el paso uno.

  3. Haga que sus páginas se llenen progresivamente para mantener a sus usuarios ocupados leyendo mientras obtiene los datos que necesitan. Coloque las cosas de nivel superior (nombre del fondo, etc.) en HTML del lado del servidor para que los motores de búsqueda puedan verlo. Use algún tipo de tecnología front-end (React, tal vez, o Datatables que obtienen datos a través de AJAX ) para representar sus páginas en el lado del cliente y proporcione puntos finales REST en su servidor para obtener los datos, en formato JSON, para cada bloque de datos en la página.

  4. En su ejecución nocturna, cree un archivo de mapa del sitio junto con sus filas de datos JSON. Eso le permite controlar exactamente cómo desea que los motores de búsqueda presenten sus datos.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda