PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Supprimer un index avec psycopg2 prend effet avant ou après la validation ?

commit valide simplement toute transaction en cours dans votre base de données.

Ce que vous demandez réellement si la suppression d'index puis la copie dans la même transaction fourniront la même accélération que la suppression initiale d'index dans une transaction, puis la copie de données dans une nouvelle transaction.

La citation directe de docs dit que :

La partie en gras indique indirectement que vous devez valider après avoir supprimé les index, car la suppression d'index sans validation (achèvement de la transaction) ne devrait avoir aucun impact sur les autres utilisateurs de la base de données.

Donc, la solution devrait être quelque chose dans ce sens :

supprimez vos index, validez, copiez les données, créez de nouveaux index et validez à nouveau.

Notez que lorsque vous divisez votre transaction en deux transactions, vous perdez l'atomicité. C'est à dire. il est possible que vos index soient supprimés, mais aucune donnée n'est copiée (si l'alimentation ou le réseau, par exemple, est perdu pendant la transaction de copie) et les index ne seront jamais recréés.