se ho una lista di Id (1, 4,6,7) e una tabella db che voglio cancellare tutti i record in cui l'id è in questa lista, qual è il modo più veloce per farlo ?cancella dove id nella lista
risposta
La tua domanda quasi segna la SQL per questo:
DELETE FROM table WHERE id IN (1, 4, 6, 7)
delete from t
where id in (1, 4, 6, 7)
La risposta corretta è che la velocità dipende dalle caratteristiche della particolare implementazione/motore che si sta utilizzando, e che si dovrebbe stare attenti qualsiasi ciarlatano che finge di essere in grado di dare una risposta definitiva a questa domanda.
Se l'ottimizzatore del sistema è così povero da non individuare l'opportunità di ottimizzazione da "WHERE id IN (...)", verrà eseguita una scansione della tabella, che potrebbe essere molto più lenta di quella di 4 comandi di cancellazione separati.
Spazzatura. Si prega di citare un motore di database in cui 4 eliminazioni separate sarebbero più veloci. – Blorgbeard
Se l'ottimizzatore nel tuo sistema è così scarso ... dovresti passare a un altro motore di database –
- 1. Trova dove id non è nella matrice di ID
- 2. linq dove elenco contiene qualsiasi nella lista
- 3. Query slick Scala dove nella lista
- 4. Tela Cancella nella Paper.js
- 5. MySQL - per ogni ID nella lista selezionare 2 ultimo elemento
- 6. Dove è definito "id" letterale?
- 7. Radcombobox cancella il testo quando non è nella lista delle voci
- 8. ottenere informazioni da un'altra tabella dove id = id
- 9. QTextEdit cancella l'intera riga nella posizione data
- 10. Cancella dati nella tabella MySQL con PHP?
- 11. Spark dataframes groupby nella lista
- 12. ottiene l'ultimo nella lista LINQ
- 13. Filtro lista XPath in base ai valori nella lista associata
- 14. Cancella molte righe da una tabella con id in MySQL
- 15. PHP Array nella Lista
- 16. (ID/ParentID) lista di Elenco gerarchico
- 17. cosa significa "cancella dalla tabella dove NULL = NULL" significa?
- 18. SELEZIONA in cassandra dove id! = Null
- 19. Dove trovo Test Device iD per AdMob
- 20. Dove trovare il mio ID applicazione Yahoo?
- 21. Laravel Query Builder dove max id
- 22. Queryover dove id non è in elenco
- 23. selezionare ... dove id = qualsiasi valore. È possibile?
- 24. Jackson deserializzare un singolo elemento nella lista
- 25. Haskell: lista di fusione, dove è necessario?
- 26. Hibernate: Unknown column nella lista campo
- 27. semplice parse XML XML nella Lista
- 28. generazione casuale nella lista FSharp
- 29. Come utilizzare. Nella lista generica
- 30. elegante sottodista trovare nella lista
Qualcuno ha messo a confronto questa cancellazione vs una per una? – jayarjo
@jayarjo: Qualsiasi differenza sarebbe probabilmente trascurabile, e non credo ci sia alcuna ragione per cui l'eliminazione one-by-one sarebbe comunque più efficiente. –
È proprio il momento in cui le prestazioni possono colpire la praticità. Ad esempio, ho già le funzioni per farlo uno per uno sul posto. Ma se ci fosse una possibilità di aumentare le prestazioni potrei scrivere qualche codice addizionale, altrimenti probabilmente non ne vale la pena. – jayarjo