MySQL - Pagina WEB

 
Vista:

Pagina WEB

Publicado por Julio Marin (1 intervención) el 02/09/2022 18:51:18
Hola que tal amigos, soy nuevo en esto.
Quisiera su ayuda en mi trabajo actual manejan una pagina web que muestra informacion de contratos.
La pagina carga muy lenta /creo porque carga contratos de años pasados
Le habilite la opcion para que puedan buscar por dni nombres etc

La consulta es que codigo tengo que añadir para que la pagina me muestre solo informacion del presente año sea 2022,2023 en adelante.

Quiero que cuando entre mediante la web a la pagina me muestre por default todos los contratos de este año.
Seria de gran ayuda su aporte.
Uso Mysql Workbench.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Pagina WEB

Publicado por Martha (80 intervenciones) el 03/09/2022 23:45:46
Yo particularmente crearía una vista con los campos que salgan en la Web. Una vista tarda menos en ejecutarse y la consulta no tiene que recorrer campos que no usas. El tiempo que tarda en ejecutarse la consulta lo puedes comprobar con MySQL Workbench.

En segundo lugar, para hacer lo que quieres deberías terminar tu consulta con WHERE YEAR(nombre_del_campo_fecha) = YEAR(CURDATE()) OR YEAR(nombre_del_campo_fecha) = YEAR(CURDATE())-1 para que te de todos los contratos de este año y del pasado. (A ver, el 2 de enero no tendrás contratos que mostrar)

Otra cosa que puedes hacer es un ORDER BY campo_de_fecha DESC, para que te aparezcan primero los últimos contratos.

Y por último un LIMIT 50, para que solo te muestre los 50 últimos (por ejemplo).

Espero haberte sido de ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Pagina WEB

Publicado por tipOracle (1 intervención) el 04/09/2022 00:16:21
Lo que mencionan del order by sirve efectivamente para que te aparezcan primero los últimos contratos.

El pero de un order by es que internamente debe hacer una ordenación por dicho campo y si son muchos los registros, eso te pasa factura en términos de rendimiento.

Te propongo que a esa estructura le crees de ser posible una columna numérica de 10 de longitud, y se copie sobre ella el campo fecha, pero solo los números sin el separador

03/09/2022 ==> 03092022

Y el order by se haga por esta columna, pues está comprobado que un order by, o una búsqueda sobre una columna numérica, es 10 veces más rápido y eficiente que hacerlo sobre un date o varchar en cualquier motor
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar