1. Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm
    Information ausblenden

Abfrage auf letzte 1000 begrenzen

Dieses Thema im Forum "MySQL und MariaDB" wurde erstellt von dl6dbh, 18 Januar 2020.

  1. dl6dbh

    dl6dbh Neuer Benutzer

    Hallo
    Ich möchte aus geschwindigkeitsgründen nur die letzten 1000 Datensätze nach Schlüsselwörter durchsuchen.
     
  2. Kampfgummibaerlie

    Kampfgummibaerlie Datenbank-Guru

    Code:
    select table.column from table where 1 = 1 order by table.column limit 1000;
    
    Das Zauberwort ist einfach "limit 1000" am Ende des Syntax.
    Nachdem ich nicht weiß, wie sie bei dir geordnet sind, habe ich einen funktionierenden (Prinzipiell) Code oben geschrieben.
     
  3. dl6dbh

    dl6dbh Neuer Benutzer

    Hallo
    danke für Antwort. Wird mit limit nicht das Ergebniss auf 1000 reduziert aber erst die ganze Datenbank durchsucht ?

    ich habe rd 75000 Datensatze im der Datenbank
    für eine Abfrage in Datensätzen des letzten Tages würde mir eine suche in den letzten 200 Datensätzen reichen.

    d.h ich möchte das das select nur in den letzten 200 (oder1000) Datensätzen sucht
    stelle mir vor das die Abfrage dann schneller ist .

    Meinolf
     
  4. akretschmer

    akretschmer Datenbank-Guru

    Um solche und weitere Fragen zu beantworten haben 'richtige' Datenbanken das EXPLAIN. Schauen wir mal in PostgreSQL nach:

    Code:
    test=# create table dl6dbh (id serial primary key, val numeric);
    CREATE TABLE
    test=*# insert into dl6dbh (val) select random()*10000 from generate_series(1,100000) s;
    INSERT 0 100000
    test=*# create index idx_val on dl6dbh (val);
    CREATE INDEX
    test=*# commit;
    COMMIT
    test=# analyze dl6dbh ;
    ANALYZE
    test=*# explain analyse select * from dl6dbh order by val limit 100;
                                                               QUERY PLAN                                                           
    ---------------------------------------------------------------------------------------------------------------------------------
     Limit  (cost=0.42..5.63 rows=100 width=15) (actual time=0.038..0.138 rows=100 loops=1)
       ->  Index Scan using idx_val on dl6dbh  (cost=0.42..5216.32 rows=100000 width=15) (actual time=0.037..0.127 rows=100 loops=1)
     Planning Time: 0.187 ms
     Execution Time: 0.156 ms
    (4 rows)
    
    test=*#
    
    Und wir sehen: der Index, der ja auch eine Sortierung hat, wird verwendet - und das LIMIT wirkt schon auf den Index-Scan.
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden