Weil wenn du Daten einfach so löschen kannst, um die Bedingungen eines Primary Key zu erfüllen, kannst du auch alle Daten löschen. So wichtig können die Daten also nicht sein.
so wichtig sind die einzeldatensätze wirklich nicht - es geht hier nicht um gelddaten, sondern wenn du so willst um eine näherung - der datenbestand wird nie komplett sein, und wenn bei >100.000.000 einträgen der eine oder andere rausfällt, wird er irgendwann auch von alleine wieder reinlaufen.
ich verzichte aus performancegründen in den meisten tables auf referenzielle integrität - dafür laufen eine reihe von “aufräumjobs”, die da ein wenig hinterherräumen.
bisher bin ich ganz gut damit gefahren.
ein problem wie die beim dump reingelaufenen dubletten ist aber wohl die quittung für diesen fehlertoleranten ansatz.
ich hätte andererseits auch selber dran denken können, die insert-queues vor dem dump für ein paar stunden abzustellen, dann wärs vermutlich nicht dazu gekommen.
die indizes sind wieder da, business as usual. wie immer ist die datenbank nach dump und reimport um rund 25% kleiner und um einiges schneller geworden.