1160
Grupo general de programadores. Si te gusta el juego Cartas contra la Humanidad prueba @cclhbot. Para cualquier duda preguntad a @themarioga
vale, ahora va todo echando ostias, ya se me hacía raro que una aplicación en local, fuera con esa lentitud
Читать полностью…
estaba cargando todo ... y claro, en employee, tengo company (relación bidireccional), una lista de equipos si es manager, TeamMember, TeamObserver (lista), department
Читать полностью…
con esto voy interiorizando que es correcto, lento y tal xd
Читать полностью…
tengo un retraso bastante heavy desde spring —> bbdd
Читать полностью…
en la bbdd, obtener todo son 53mili segundos, desde pgadmin
Читать полностью…
Porque la caché la tienes que crear, pero también ponerle un TTL, invalidarla en determinados casos...
No es cachear una vez y ya está 😂
os lo enseñaría, pero ahí ya hay información verdaddera
Читать полностью…
haré un caso de uso más o menos real, meteré 400 empleados (mi empresa tiene 400 aprox), a ver cuánto tarda.
Читать полностью…
yo lo pondría en un json con sincronización por tiempo, una vez hice eso porque los datos eran muchos, tuve que sacrificar la sincronización "in time" para actualizar el JSON cada hora, fue un asco y espero no hacerlo nuevamente pero funcionaba de maravilla
Читать полностью…
Bueno estaba buscando el nombre exacto y seria "revalidación bajo demanda" usando Cache Tags por ejemplo
Читать полностью…
Justo ahora me he escuchado un vídeo que mencionaba la caché, tiene su parte buena entiendo , pero si hay cambios en la BBDD depende como, no sé verán
Читать полностью…
y claro, dentro de una consulta, pues como que habría unas cuantas más y todo lo que tenga que hacer para montar la entidad
Читать полностью…
cambiar en las relaciones entre tablas como obtener los datos, el fetchtype, eso de Lazy, Eager ... cargar una parte, cargarlo todo ...
Читать полностью…
claro, las relaciones predeterminadamente son muchas EAGER y se está trayendo la biblia en la consulta
Читать полностью…
lo del retraso ya no se dice así, hay que tratar con más respeto a las personas
Читать полностью…
public List<EmployeeTableDTO> getEmployeListDTO() {
// return employeeRepository.findAll()
// .stream()
// .map(EmployeeEntity::toTableDto)
// .toList();
long start = System.currentTimeMillis();
List<EmployeeEntity> list = employeeRepository.findAll();
long end = System.currentTimeMillis();
System.out.println("TIME findAll: " + (end - start));
start = System.currentTimeMillis();
List<EmployeeTableDTO> listDTO = list
.stream()
.map(EmployeeEntity::toTableDto)
.toList();
end = System.currentTimeMillis();
System.out.println("TIME toDTO: " + (end - start));
return listDTO;
}
De todas formas, si la consulta es lenta, el cacheo es no es una solución, es un parche al estilo "si no la miras no está"
La mayoría de las veces, son consultas muy mal escritas
Hay mucha gente que cree que con crear un índice, la base de datos lo usará, y eso no es así. Dependiendo de la query, a lo mejor ese índice no servirá de nada
Usar un ORDER BY en un conjunto muy grande de datos penaliza muchísimo el rendimiento, porque la base de datos tendrá que ordenar a base de chunks, usando disco. Y crear un índice para el ORDER BY, dependiendo de cómo esté escrita la consulta, tampoco significa que se vaya a usar
¿Solución que funciona? Reescribir la consulta de forma que use índices y obtenga los datos de manera más eficiente
pero vamos, que mi web tarda 1 seg, la que usan actualmente .... no sé cómo será su bbdd pero yo para cargar información de 10 operarios, me muero esperando
Читать полностью…
me lo voy a apuntar todo, seguro que son cosas interesantes de aplicar aunque sea para prener
Читать полностью…
Supongo que habrá alguna forma de discriminación
Читать полностью…
Cachear todo a menos que se mute la colección de empleados
Читать полностью…