Was ist der schnellste Weg zu überprüfen, ob ein Datensatz existiert, wenn ich den Primärschlüssel kenne? select
, count
, filter
, where
oder etwas anderes?Schnellste Art zu überprüfen, ob ein Datensatz existiert
Antwort
Sie können sich über EXPLAIN QUERY PLAN überprüfen, die Ihnen die Kosten & mitteilen wird, was es für eine bestimmte Abfrage zu tun beabsichtigt.
Die Kosten vergleichen nicht direkt zwischen Läufen, aber Sie sollten eine vernünftige Vorstellung davon bekommen, ob es große Unterschiede gibt.
aber sagen, dass ich würde erwarten, COUNT(id) FROM table WHERE table.id="KEY"
ist wahrscheinlich das ideal, da sie den Vorteil eines Teil Lookup Fähigkeit (besonders schnell in columnar databases wie Amazons Rotverschiebung) und der Primärschlüssel Indizierung stattfinden wird.
Wenn Sie count
verwenden, muss die Datenbank die Suche fortsetzen, auch wenn sie den Datensatz gefunden hat, da möglicherweise ein zweiter vorhanden ist. Sie sollten also nach dem tatsächlichen Datensatz suchen und der Datenbank nach dem ersten anhalten.
Wenn Sie nach Daten aus dem Datensatz fragen, muss die Datenbank diese Daten aus der Tabelle lesen. Aber wenn der Datensatz gefunden werden kann, indem die ID in einem Index nachgeschlagen wird, wäre dieser Tabellenzugriff überflüssig. Sie sollten also nichts anderes als die ID kehren Sie zurück zur Suche verwenden:
SELECT id FROM MyTable WHERE id = ? LIMIT 1;
Wie auch immer, nicht die eigentlichen Daten und die Grenze zu lesen impliziert werden, wenn Sie EXISTS verwenden, die einfacher in peewee ist:
SELECT EXISTS (SELECT * FROM MyTable WHERE id = ?);
MyTable.select().where(MyTable.id == x).exists()
- 1. Schnellste Möglichkeit zu überprüfen, ob ein Objekt existiert
- 2. Prüfen, ob CRM-Datensatz existiert
- 3. SQL überprüfen, ob der Datensatz existiert
- 4. CakePHP überprüfen, ob der Datensatz existiert
- 5. Java - Schnellste Möglichkeit zu überprüfen, ob die URL existiert
- 6. Überprüfen, ob Datensatz existiert mit Dapper ORM
- 7. Wie überprüfen Sie, ob Datensatz existiert
- 8. PHP überprüfen, ob Datensatz in SQL existiert
- 9. rethinkdb überprüfen, ob Datensatz
- 10. Überprüfen, ob ein Registrierungsschlüssel existiert
- 11. Überprüfen, ob ein Datenrahmen existiert
- 12. Überprüfen, ob ein Kind existiert
- 13. Überprüfen, ob ein Element existiert
- 14. Schnellste "GENERIC" Möglichkeit zu prüfen, ob ein Datensatz in db existiert?
- 15. Überprüfen, ob ein Datenblatt existiert in R
- 16. Schnellste Möglichkeiten zu überprüfen, ob bereits ein Wert in einem STL-Container existiert
- 17. Überprüfen, ob der Datensatz vom Controller in Rails existiert
- 18. Doctorine überprüfen, ob der Datensatz in der Datenbank existiert
- 19. Rails - update bearbeiten/überprüfen, ob Datensatz von der Steuerung existiert
- 20. Überprüfen, ob Fragment existiert
- 21. e4x: einfachste Art zu erkennen, ob ein Attribut existiert
- 22. Überprüfen, ob das Feld im DNS-Datensatz mit scapy existiert
- 23. Wie kann man überprüfen, ob Datensatz existiert in C# ist
- 24. Mit WatiN ... überprüfen, ob ein Element existiert?
- 25. Netscaler überprüfen, ob ein Cookie existiert
- 26. Überprüfen Sie, ob ein Benutzername bereits existiert
- 27. Überprüfen, ob ein Element in Winkelmesser existiert
- 28. Knoten - Überprüfen Sie, ob ein Verzeichnis existiert
- 29. Überprüfen, ob ein Element in Winkelmesser existiert
- 30. Überprüfen, ob ein include (oder require) existiert
COUNT (id) FROM Tabelle WHERE table.id = "KEY" 'wahrscheinlich das ideal ist, wie es von Vorteil, jede Teil Lookup Fähigkeit nehmen (besonders schnell in säulen Datenbanken wie amazon Rotverschiebung) und die Primärschlüssel-Indizierung. – TemporalWolf
Der schnellste Weg ist die Anzahl der angegebenen Optionen. Um roher zu werden, verwenden Sie sqlite3_column_count() direkt von den sqlite-Quellen, indem Sie eine benutzerdefinierte Hash-Liste führen. – Jerry