Datensätze löschen

JanHH

Top Contributor
Hallo,

hab gerüchteweise gehört, dass das Löschen von Datensätzen (Zeilen) aus Tabellen, bei denen der Zugriff performancekritisch ist (daher Indizes angelegt usw), nicht besonders performant ist und auch die Indizierung durcheinander bringt (reindizierung notwendig) und man die Daten daher nicht löschen, sondern die Zeilen lieber über ein entsprechendes Attribut als "invalid" markieren sollte.

Stimmt das oder kann ich die auch getrost einfach löschen?

Handelt sich dabei um eine JPA 1.0-Anwendung.

Danke
 
M

maki

Gast
Ich hab gehört dass Leute zuviel auf hörensagen geben ;)

Testen & messen, der Rest ist geschwafel...
 

JanHH

Top Contributor
Hab ich mir auch gedacht, ist ja keine grosse Aktion, das später umzubauen.

Gibt dann wohl also kein eindeutiges ja oder nein?

Ich kenn dummerweise nur eine einzige Person, die sich wirklich im JEE-Bereich auskennt, und bin daher zwangsläufig mit etwas einseitigen Meinungen konfrontiert (hinter denen allerdings reichlich Praxiserfahrung steckt). Und ich bin ja grad erst dabei, selber Komplexe Projekte damit in Angriff zu nehmen und Erfahrungen zu sammeln.
 
M

maki

Gast
Ist alles auch eine Frage des Datenvolumens, der DB und der DB Struktur, pauschal kann man nur sagen dass es keine pauschale Antwort gibt.

Solche Optimierungen kann man immer noch dann umsetzen wenn sie nötig sind, aber für den Anfang reicht es meistens die Probleme zu lösen die man wirklich hat ;)
 

javapower

Mitglied
Und ich bin ja grad erst dabei, selber Komplexe Projekte damit in Angriff zu nehmen und Erfahrungen zu sammeln.

nach einem delete setzen wir meistens ein reorg und runstat ab. der ansatz über ein attribut "invalid" ist auch machbar. wie bereits erwähnt hängt die db performance von faktoren ab, die hier nicht erwähnt worden sind. deshalb ist testen, messen und löschstrategie festlegen zu empfehlen. btw: welche db verwendest du und um wieviele datensätze handelt es sich?
 

JanHH

Top Contributor
Postgres 8.4 (aber da ist auch alles andere möglich was kein Geld kostet und JDBC kann), und wie viele Datensätze.. gute Frage. Schwankt stark zwischen viel und wenig. Werden immer mehr (wenn man sie nicht löscht irgendwann). Gibt eine Tabelle mit Datensätze und "Projekte" und jedes Projekt legt in der Tabelle Datensätze ab, pro Projekt werden es wohl einige hundert bis tausend, und es laufen zwischen 10 und 200 dieser Projekte pro Jahr. Entweder man löscht die Datensätze gleich wenn sie benutzt worden sind und nicht mehr gebraucht werden, oder man setzt sie auf "invalid" und löscht sie dann wenn ein ganzes Projekt gelöscht wird (was wohl mit anschliessender Neu-Indizierung einiger Tabellen über Nacht stattfinden wird).
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Mit Hibernate mehrere Datensätze löschen Datenbankprogrammierung 7
O Löschen vieler Datensätze mit Hibernate Datenbankprogrammierung 11
E SQL-Frage (Löschen aller Datensätze) Datenbankprogrammierung 9
M Datensätze in DataGrip (IntelliJ) Datenbankprogrammierung 1
nonickatall MySQL Auf neue Datensätze in einer Datenbank reagieren Datenbankprogrammierung 5
J Java fügt Datensätze ein aber diese werden nicht richtig abgefragt Datenbankprogrammierung 3
R MySQL Datensätze in Textdokument Datenbankprogrammierung 7
F MySQL Wie kann ich in Java Datensätze aus einer MySQL Datenbank gezielt in einzelne Arrays schreiben? Datenbankprogrammierung 9
R Große Datensätze, kleine Rechte Datenbankprogrammierung 8
J wie mit resultset.next() über Datensätze iterieren? Datenbankprogrammierung 15
T MySQL MySQL - Insert into fügt zwei identische Datensätze ein Datenbankprogrammierung 2
B Nur 99% der Datensätze werden in Tabelle geschrieben Datenbankprogrammierung 2
E primaryKey auslesen - Datensätze abgleichen Datenbankprogrammierung 4
S Häufig vorkommende Datensätze Datenbankprogrammierung 4
Kandum MySQL Anzahl gefundener Datensätze bleibt gleich, auch wenn mehr existieren und ausgegeben werden Datenbankprogrammierung 3
C Hibernate Datensätze finden Datenbankprogrammierung 17
F [SQLite] Mehrere Datensätze einfügen Datenbankprogrammierung 12
S Anzahl Datensätze in db4o Datenbankprogrammierung 2
D Können nur angesehende Datensätze geloggt werden? Datenbankprogrammierung 4
F NUR 3 datensätze auslesen Datenbankprogrammierung 6
F MySQL Nur die Datensätze zurückgeben, in denen ein anderer Preis steht Datenbankprogrammierung 9
B Aktuellen Stand der Datensätze einer Datenbank anzeigen Datenbankprogrammierung 9
J SQL-Abfrage zur löschung doppelter Datensätze Datenbankprogrammierung 7
J Ausgewählte Datensätze in DB-Tabelle schreiben Datenbankprogrammierung 13
J Datensätze aus der Datenbank holen Datenbankprogrammierung 3
S MySQl - Neue Datensätze "on the Fly" verarbeiten Datenbankprogrammierung 8
M Keine doppelten Datensätze einfügen Datenbankprogrammierung 24
N Oracle DB liefert nicht alle Datensätze Datenbankprogrammierung 3
C Doppelte Datensätze Datenbankprogrammierung 11
T Datensätze effektiv einlesen Datenbankprogrammierung 4
ARadauer viele datensätze. Datenbankprogrammierung 3
I Anzahl unterschiedlicher Datensätze ausgeben Datenbankprogrammierung 2
D mehrere Datensätze in ein Listenfeld Datenbankprogrammierung 2
S 50.000 updates auf 50.000 Datensätze Datenbankprogrammierung 3
A SELECT-Anweisung liefert keine Datensätze zurück Datenbankprogrammierung 9
M Datensätze zählen. Datenbankprogrammierung 6
M JDBC: Viele Datensätze in Tabelle einfügen: Wie? Datenbankprogrammierung 7
C Datensätze variabel hinzufügen Datenbankprogrammierung 4
K Ältere Datensätze archivieren Datenbankprogrammierung 4
C Datensätze in einer JComboBox auflisten Datenbankprogrammierung 2
V Anzahl der Datensätze abfragen Datenbankprogrammierung 9
W Datensätze v. SQL-Datenbank i. JTextFields ausgeben/updaten Datenbankprogrammierung 12
D Anzahl der zurückgelieferten Datensätze Datenbankprogrammierung 2
S gesamte Tabelle löschen Datenbankprogrammierung 2
F SQLite Datensatz löschen Datenbankprogrammierung 13
R PostgreSQL JPA - Löschen und orphanRemoval Datenbankprogrammierung 6
B Mit Button einen Datensatz löschen Datenbankprogrammierung 2
A Eine MySQL Zeile mit JDBC löschen Datenbankprogrammierung 5
B Fortlaufende Nummer - Was tun bei löschen? Datenbankprogrammierung 6
R eclipselink - referenzierte Entity löschen Datenbankprogrammierung 0
P Indizes / Fremdschlüssel löschen Datenbankprogrammierung 2
H Oracle Aus Datenbank löschen Datenbankprogrammierung 6
A Ausgewählten Jtable Eintrag aus Db löschen Datenbankprogrammierung 9
reibi Derby/JavaDB Derby DB löschen Datenbankprogrammierung 5
P JPA- Entities bleiben nach dem Löschen (unsichtbar?) in der Datenbank Datenbankprogrammierung 6
C Hibernate Datensatz löschen Datenbankprogrammierung 2
U Nur den ersten Datensatz löschen wenn mehrere gleiche da sind Datenbankprogrammierung 2
M Datenbankeintrag bleibt nach Löschen in JSP vorhanden Datenbankprogrammierung 8
D Mit Trigger Tupel löschen verhindern Datenbankprogrammierung 3
L MySQL Einträge löschen schlägt fehl Datenbankprogrammierung 2
F hibernate_seqeunce reseten (löschen) Datenbankprogrammierung 2
J MySQL Löschen von Rows mit JDBC Datenbankprogrammierung 9
M HSQLDB 2.0 - wie tmp-Verzeichnis löschen Datenbankprogrammierung 2
turmaline [Hibernate] @OneToOne: Löschen einer referenzierten Instanz Datenbankprogrammierung 2
G Oracle Zeile löschen Datenbankprogrammierung 2
C SQL String zwei Tabellen vergleichen und gleiche Zeile löschen Datenbankprogrammierung 25
Java.getSkill() Datensatz / Tupel automatisch nach xy Tagen / Stunden löschen Datenbankprogrammierung 7
D SQL : Objekte individuell löschen können Datenbankprogrammierung 5
R JPA, Spring, löschen einer Entity Datenbankprogrammierung 2
H MySQL Einträge löschen Datenbankprogrammierung 5
M Datensatz aus Datenbank löschen Datenbankprogrammierung 6
Antoras Zeile aus DB löschen und ID runterzählen Datenbankprogrammierung 8
C Objekte aus Datenbank löschen Datenbankprogrammierung 6
F Löschen einer Zeile Datenbankprogrammierung 4
G Mit Java-Programm Datenbank löschen/neu anlegen Datenbankprogrammierung 5
G Löschen eines Eintrages verbunden mit JList Datenbankprogrammierung 5
P Tabellen löschen Datenbankprogrammierung 4
O Size ResultSet betrachtete Zeilen "löschen" Datenbankprogrammierung 5
G MySQL Zeile löschen und gleich Optimieren Datenbankprogrammierung 6
T [jdbc] einen Eintrag aus mehreren Tabellen löschen (Batch) Datenbankprogrammierung 3
G mySQL: kaskadierendes Löschen Datenbankprogrammierung 7

Ähnliche Java Themen


Oben