Wenn auf dem ABC Tabelle Update wurde am gleichen Punkt ausgeführt wurde select wurde auch auf der gleichen Tabelle ausgeführt, in Postgresql, die zuerst?welchen sollte man zuerst vervollständigen, wählen oder aktualisieren in der postgreql datenbank?
Antwort
Okay, ich denke, ich weiß, was Sie fragen.
Wenn Sie etwas aktualisieren, ist es für nichts anderes sichtbar, bis Sie diese Transaktion bestätigen. Wenn du etwas aktualisierst und es eine Weile dauert, sollte es keine Auswahlen für das selbe Zeug blockieren.
Wenn Sie also Ihr 10-Minuten-Update starten und dann jemand ihre 2-Minuten-Auswahl beginnt, werden die alten Daten angezeigt und nicht blockiert. Das Update wird ohne Unterbrechung fortgesetzt. Wenn nach dem Update die zweite Minute erneut gestartet wird, werden die neuen Daten angezeigt.
Beantwortet das Ihre Frage?
Der Grund dafür, falls Sie interessiert sind, dann ist das postgresql MVCC verwendet. Das bedeutet im Wesentlichen, dass beim Aktualisieren von Zeilen neue Kopien dieser Zeilen geschrieben werden. Auf den neuen Kopien zeigt Postgres an, welche Transaktionen die neuen Daten sehen können. Die alten Daten bleiben erhalten und haben auch Informationen darüber, welche Transaktionen sie sehen können.
Wenn Sie auswählen, überprüft Postgres die Tabelle und prüft, welche dieser Zeilen in Ihrer aktuellen Transaktion für Sie sichtbar sind. Es gibt nur Zeilen zurück, die Sie sehen können.
Wenn es keine Transaktionen mehr gibt, die eine Zeile sehen können, weiß Postgres, dass sie gelöscht werden kann und wird diesen Speicherplatz zurückfordern.
Danke. Sie beantwortet meine Bedenken. – Adm
- 1. ActiveX für Browser. Welchen sollte man VB6 oder .NET wählen?
- 2. Sollte ich zuerst die Anwendung oder das Modell (Datenbank) entwerfen?
- 3. RegEx oder Antlr, welche sollte man wählen?
- 4. was sollte man zuerst machen? Desinfektion oder Validierung
- 5. Welchen kann ich wählen? SSH oder AMQP?
- 6. Was sollte zuerst kommen - das Designmuster oder der Code?
- 7. Welchen azure Service sollte ich für meine node.js App wählen?
- 8. Aktualisieren einer Datenbank während der Verwendung eines preparedStatement Wählen Sie
- 9. Was ich wählen sollte - JSON oder SQLite?
- 10. Welchen Fehlerwert sollte ich verwenden?
- 11. Welchen Typ sollte myCustomDictionary.Values zurückgeben?
- 12. EF 6.1 Code zuerst von der Datenbank - Wie man beitritt
- 13. Welches sollte zuerst gezeichnet werden, Klassen- oder Sequenzdiagramm?
- 14. Wählen Sie zuerst div in der Tabelle und toggle Klasse
- 15. PCA zuerst oder Normalisierung zuerst?
- 16. Umgebung zuerst oder zuerst booten?
- 17. Welchen Wortstammer sollte ich in nltk verwenden?
- 18. System.Resources.MissingManifestResourceException beim Aktualisieren der Datenbank
- 19. Wo sind die Unterschiede zwischen XML und MySQL Datenbank? Welchen sollte ich verwenden?
- 20. Aktualisieren der vorhandenen Datenbank mit Entity Framework Code Zuerst in MVC
- 21. RecyclerView und Adapter, welchen sollte man für Datenänderungen sorgen?
- 22. Welchen Diagrammtyp sollte ich wählen, um die Änderung der Werte zwischen zwei Daten anzuzeigen?
- 23. Entwurf oder Prototyp zuerst?
- 24. Wählen Sie zuerst 'N' Elemente aus der Karte in Scala
- 25. Sollte ich zuerst POM oder MANIFEST zuerst verwenden, wenn ich eine OSGi-Anwendung mit Maven entwickle?
- 26. Welchen Wert des Backlogs sollte ich verwenden?
- 27. Gespeicherte Prozedur in Code zuerst aktualisieren DbMigration
- 28. Code zuerst Verknüpfung mit der Datenbank mit EntityFramework 4
- 29. Auto vervollständigen in VC++
- 30. Leistungsprobleme beim Aktualisieren der Benutzeroberfläche, ohne zuerst InvokeRequired zu überprüfen?
Können Sie uns mehr über die Situation und die Frage erzählen? Es gibt keine garantierte Antwort auf die minimale Frage, die Sie gestellt haben, da alles von der Größe der Einfügung und Auswahl, der Größe der Tabelle, der Indexsituation, der Anzahl der toten Tupel und nicht von Diskgeschwindigkeit, I/O vs. CPU und Cache abhängen kann usw. – jmelesky
Angenommen, ich habe eine Tabelle, die 10 Minuten braucht, um bestimmte Prädikate zu aktualisieren, und 2 Minuten, um bestimmte Prädikate auszuwählen.so habe ich ein Update gestartet, nach 2 Minuten hat ein anderer Benutzer seine Auswahlabfrage gestartet, in diesem Fall Was wird zuerst entstehen? entweder auswählen oder aktualisieren? und auch wird update eine lock und table nehmen und erlaubt anderen benutzer nicht zu wählen und warten bis das update abgeschlossen ist? – Adm