![]() |
Datenbank: SQLite • Version: 3 • Zugriff über: SQLite3Connection
Am schnellsten die letzten 100 Datensätze aus ner DB laden?
Hallo,
ich möchte aus einer DB am schnellsten die letzten 100 Datensätze holen. Ich kam auf diese Lösung, gibt's bessere Ideen?
Delphi-Quellcode:
Wird da nicht erst sortiert? Das kann doch unter Umständen lange dauern, oder?
SELECT knr FROM tbteilnehmer ORDER BY id_teilnehmer DESC LIMIT 100
|
AW: Am schnellsten die letzten 100 Datensätze aus ner DB laden?
Definiere "die letzten 100".
|
AW: Am schnellsten die letzten 100 Datensätze aus ner DB laden?
Wenn id_teilnehmer indiziert ist, muss er nicht sortieren, sondern geht über den Index. Dann müsste das so recht schnell gehen.
|
AW: Am schnellsten die letzten 100 Datensätze aus ner DB laden?
Zitat:
|
AW: Am schnellsten die letzten 100 Datensätze aus ner DB laden?
Ja. Bei einem PK wir automatisch ein Index angelegt
|
AW: Am schnellsten die letzten 100 Datensätze aus ner DB laden?
Ob dann dieser automatisch erstelle Index für einen PL bei einem DESC verwendet werden kann ist DBMS-spezifisch.
|
AW: Am schnellsten die letzten 100 Datensätze aus ner DB laden?
Ist das hier ein Doppelpost von
![]() Hast Du die Lösung dort bereits verstanden und umgesetzt? Viele Grüße, Christoph |
AW: Am schnellsten die letzten 100 Datensätze aus ner DB laden?
Zitat:
|
AW: Am schnellsten die letzten 100 Datensätze aus ner DB laden?
Das könnte man schon als recht ähnlich ansehen ( die letzten x mit x= 1 vs x = 100)
|
AW: Am schnellsten die letzten 100 Datensätze aus ner DB laden?
Zitat:
|
AW: Am schnellsten die letzten 100 Datensätze aus ner DB laden?
Zitat:
Gruß K-H |
AW: Am schnellsten die letzten 100 Datensätze aus ner DB laden?
Zitat:
somit erstelle dir ein INDEX auf das PK Feld als DESC index, somit muss er nicht natural laufen dann klappt deine Anfrage immer sehr schnell. |
AW: Am schnellsten die letzten 100 Datensätze aus ner DB laden?
[QUOTE=danielmagin;1285879]
Zitat:
|
AW: Am schnellsten die letzten 100 Datensätze aus ner DB laden?
Indem Du einen Index auf id_teilnehmer mit absteigender Sortierung erstellst. Geht einfach im Admintool oder mit SQL Create INDEX ...
|
AW: Am schnellsten die letzten 100 Datensätze aus ner DB laden?
Zitat:
Delphi-Quellcode:
SELECT knr FROM tbteilnehmer ORDER BY id_teilnehmer DESC LIMIT 100
|
AW: Am schnellsten die letzten 100 Datensätze aus ner DB laden?
Wie, "vorher"?
|
AW: Am schnellsten die letzten 100 Datensätze aus ner DB laden?
Zitat:
Delphi-Quellcode:
aufrufen? Damit die Werte vor der Abfrage schon DESC sortiert sind, oder ich lasse meine select Abfrage so wie sie jetzt ist und fertig?
SELECT knr FROM tbteilnehmer ORDER BY id_teilnehmer DESC LIMIT 100
|
AW: Am schnellsten die letzten 100 Datensätze aus ner DB laden?
Wenn du aufsteigend sortierest, witrd der ASC INDEX verwendet und wenn du absteigend sortierst der DESC INDEX, falls vorhanden, sonst wird ein full table scan gemacht -> langsam.
|
AW: Am schnellsten die letzten 100 Datensätze aus ner DB laden?
Die Daten in der Tabelle liegen in irgendeiner undefinierten Reihenfolge vor, sortiert werden kann also nur bei der Abfrage. Und danach ändert sich die Reihenfolge innerhalb der Tabelle auch nicht, wäre ja auch völliger Blödsinn, da wäre der Server ja beinahe nur noch mit Sortieren beschäftigt. Aus diesem Grund musst Du die Sortierung in Deinem Statement angeben, es gibt also kein "vorher".
[edit] Nachtrag: Und dafür gib es ja die Indizes, die sind sortiert und werden auch ggf. aktualisiert, wenn sich Daten ändern. [/edit] |
AW: Am schnellsten die letzten 100 Datensätze aus ner DB laden?
Zitat:
|
AW: Am schnellsten die letzten 100 Datensätze aus ner DB laden?
Siehe mein Edit.
|
AW: Am schnellsten die letzten 100 Datensätze aus ner DB laden?
Ja, es wird ein aufsteigender INDEX erzeugt, den der wird normalerweise verwendet. Willst Du eine abweichende Sortierung ( also absteigend) musst Du selber für einen passenden INDEX sorgen.
|
AW: Am schnellsten die letzten 100 Datensätze aus ner DB laden?
Zitat:
|
AW: Am schnellsten die letzten 100 Datensätze aus ner DB laden?
Ja, den wenn kein INDEX vorhanden ist macht er einen full table scan, d.h. er sucht direkt in der Tabelle, in der die Datensätze unsortiert in der Reihenfolge des Einfügens geschrieben sind.
|
AW: Am schnellsten die letzten 100 Datensätze aus ner DB laden?
Zitat:
|
AW: Am schnellsten die letzten 100 Datensätze aus ner DB laden?
Zitat:
|
AW: Am schnellsten die letzten 100 Datensätze aus ner DB laden?
Den man kann einfach einen weiteren Index anlegen
|
AW: Am schnellsten die letzten 100 Datensätze aus ner DB laden?
Zitat:
|
AW: Am schnellsten die letzten 100 Datensätze aus ner DB laden?
Yo, und?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:33 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz