Ich habe eine Postgres-Instanz mit einem postgres
Benutzer.Wie Autocommit dauerhaft abstellen postgres
[email protected]:/# su - postgres
No directory, logging in with HOME=/
$ bash
[email protected]:$ psql
psql (9.6.1)
Type "help" for help.
postgres=# \echo :AUTOCOMMIT
on
In /
das ist Postgres Home-Verzeichnis I .psqlrc haben, die wie Idealer Autocommit aus
[email protected]:/$ cat ~/.psqlrc
\set AUTOCOMMIT off
sieht gesetzt haben sollte, aber es es schaltet nicht ab. Ich bin neu in Postgres. Irgendwelche Hinweise hier würden helfen. Ich weiß, dass dies keine dauerhafte Lösung ist. Ich habe auch gelesen, dass selbst wenn Auto-Commit aktiviert ist, wenn Sie Transaktionen haben, dann würde es nur committed, wenn Sie Commit aufrufen, egal was die Auto-Commit-Einstellung ist. Ist das wahr?
* Warum * möchten Sie Autocommit ausschalten? Dies ist das Standardverhalten in allen Datenbanken, sogar in denen, die standardmäßig vor 20 oder mehr Jahren deaktiviert waren. Lange Transaktionen sind schlecht für die Skalierbarkeit, geschweige denn den gelegentlichen Verlust von Daten, weil Sie vergessen haben, eine implizit gestartete Transaktion zu begehen. –
'cat ~/.psqlrc' ist nicht' cat/.psqlrc' - zeigt die Ausgabe der letzten? .. –
Autocommit Off hat vor mehr als 20 Jahren Sinn gemacht, weil die Leute tatsächlich DML-Befehle eingegeben haben. Anwendungen sollten jedoch Transaktionen so wenig wie möglich offen halten. Offene Transaktionen verbrauchen Ressourcen und führen zu Blockierungen, was zu einer erheblichen Durchsatzreduzierung führt. –