Voglio eliminare le righe su una delle mie tabelle che hanno più di 7 giorni. Qual è il modo migliore per farlo? fare un cron job che viene eseguito ogni notte o PostgreSQL ha funzioni incorporate per fare qualcosa di simile?Postgresql cancella le vecchie file su base continuativa?
risposta
delete from the_table
where the_timestamp < now() - interval '7 days'
Il modo più semplice (per me) per pianificare un lavoro DB è creare un cron job, che esegue uno script SQL utilizzando psql
.
Here
è possibile leggere su psql
. Utilizzare -f
o -c
per passare i comandi SQL a psql
.
Inoltre potrebbe essere più facile scrivere una funzione PL/pgSQL, che fa il tuo lavoro e chiamare da psql
con SELECT my_function();
PostgreSQL attualmente non hanno una funzionalità built-in cron-like, in modo da Vorrei usare il cron del sistema per eseguire un'istruzione di cancellazione appropriata. Se hai già un indice btree nella colonna timestamp, potresti eseguire l'eliminazione molto più frequentemente che ogni notte, eliminando piccoli blocchi alla volta. Se non si dispone dell'indice, è consigliabile eseguirlo di notte durante gli orari di punta.
Se queste non hanno le prestazioni necessarie, è possibile provare il partizionamento. Ma lo farei come ultima risorsa, non una prima risorsa.
- 1. git rimuove le revisioni più vecchie di un file
- 2. GitHub: ricerca attraverso le vecchie versioni dei file
- 3. Rimuovere le vecchie versioni di Ruby (su Windows)
- 4. deleteOnExit non cancella file
- 5. Sprites 'Bank Switching' su vecchie applicazioni NES
- 6. Cancella file registro git
- 7. Cancella API file HTML5
- 8. Ruby che cancella le directory
- 9. Disinstallare le vecchie versioni di Android SDK
- 10. Haskell newtype, ma mantiene le vecchie funzioni
- 11. Python - cancella i vecchi file
- 12. UITableVisualizza le celle disinserite ricaricando le vecchie immagini
- 13. Bash. Cancella tutti i file e le directory ma alcuni
- 14. Cancella le credenziali da UIWebView
- 15. Cancella un singolo file, usando il caricamento del file jquery
- 16. Node.js (Express) Modulo Cancella su invio
- 17. Cancella localStorage su iOS Safari
- 18. Cancella repository git su Bitbucket?
- 19. Boto3 utilizza vecchie credenziali
- 20. Posizione file dati PostgreSQL
- 21. Come rimuovo le vecchie versioni di node/npm?
- 22. Può ClickOnce essere configurato per eliminare le vecchie directory pubblicate?
- 23. Indice PostgreSQL su JSON
- 24. Va bene estendere le classi di stile vecchie e nuove?
- 25. efficiente ottenere le vecchie versioni di pacchetti R
- 26. UICollectionView non rimuove le vecchie celle dopo lo scorrimento
- 27. Come salvare molte vecchie versioni numerate di un file
- 28. postgresql- restore file .dump
- 29. Problemi con $ libdir su PostgreSQL
- 30. Perché non cancella il puntatore su NULL?
C'è un timestamp nella riga? –
le righe hanno il timestamp – Arya
Perché cancellare i dati, perché non limitarsi a fare una ricerca? E se esegui il lavoro ogni notte, avrai dati di quasi otto giorni prima dell'esecuzione del lavoro: perché non eseguire ogni ora o ogni minuto? – Josh