2017-07-25 3 views
0

Es gibt eine Tabelle mit dem Namen company_master mit mehreren Zeilen für jede user_id. Ich aktualisiere diese Tabelle und setze eine ihrer Spalten als false.Welches ist die effizienteste Art der Datenaktualisierung?

Welcher Weg wird bevorzugt?

1) bekommen die List<CompanyMaster> aus company_master Tabelle und dann Statusfeld einstellen, und dann in einer Schleife um das Objekt zu aktualisieren

2) Schreiben direkt wie diese Abfrage

Query query= session.createQuery("update CompanyMaster set status=:status where userId= :userId"); query.setParameterList("status", false); query.setParameterList("userId", 1); query.executeUpdate();

Antwort

0

wenn Sie können, in In Ihrem Fall können Sie und Sie sollten eine direkte Abfrage für den Aktualisierungs- oder Löschvorgang verwenden. Sie müssen Datensätze nicht vorher auswählen und aktualisieren, da sie langsamer als ein direktes Update ist - Sie wählen mit Daten aus, die Sie nicht zum Aktualisieren/Löschen benötigen, Sie müssen sie nicht serverseitig durchlaufen (z es ist langsamer in der Leistung als es in db Seite tut). Sie können auch einen Fall haben, wenn Sie auf eine große Anzahl von Datensätzen aktualisieren müssen und in diesem Fall aus db in store in java memory wählen, es ist nur verschwendete Speicherkomprimierung.

Verwandte Themen