Logical replication in PostgreSQL Amount of subscriber vs publisher WALs

  • Jump to comment-1
    PALAYRET Jacques<jacques.palayret@meteo.fr>
    Mar 24, 2026, 2:06 PM UTC
    Hello,
    The amount of WAL generated by an SQL INSERT or UPDATE statement applied to a table with multiple indexes can be much greater than the size of the table (table + index).
    For example, an INSERT statement in an empty table (with 3 indexes) can generate WALs twice the size of the table (table + index).
    This difference (even for an INSERT) may seem surprising, but it's understandable.
    What's less intuitive is that, according to my tests, with logical replication in PostgreSQL, the amount of WAL generated by an SQL statement can be very different between the subscriber server (the replica) and the publisher server (the provider).
    Is this accurate? Sometimes 1.5 or 2 times greater?
    Regards
    ----- Météo-France -----
    PALAYRET Jacques
    DCSC/GDC
    jacques.palayret@meteo.fr
    Fixe : +33 561078319
    • Jump to comment-1
      PALAYRET Jacques<jacques.palayret@meteo.fr>
      Mar 25, 2026, 4:15 PM UTC
      Hello,
      Vacuuming seems to explain these differences.
      Especially for large tables, vacuuming can generate many WAL.
      Regards
      De: "PALAYRET Jacques" <jacques.palayret@meteo.fr>
      À: pgsql-general@lists.postgresql.org
      Envoyé: Mardi 24 Mars 2026 15:06:23
      Objet: Logical replication in PostgreSQL Amount of subscriber vs publisher WALs
      Hello,
      The amount of WAL generated by an SQL INSERT or UPDATE statement applied to a table with multiple indexes can be much greater than the size of the table (table + index).
      For example, an INSERT statement in an empty table (with 3 indexes) can generate WALs twice the size of the table (table + index).
      This difference (even for an INSERT) may seem surprising, but it's understandable.
      What's less intuitive is that, according to my tests, with logical replication in PostgreSQL, the amount of WAL generated by an SQL statement can be very different between the subscriber server (the replica) and the publisher server (the provider).
      Is this accurate? Sometimes 1.5 or 2 times greater?
      Regards
      ----- Météo-France -----
      PALAYRET Jacques
      DCSC/GDC
      jacques.palayret@meteo.fr
      Fixe : +33 561078319