Sind zwei Abfragen nötig

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Sind zwei Abfragen nötig

    Hallo,

    ich habe wieder ein mehr oder weniger großer Problem.

    ich durchsuche per PHP Script eine mysql mit ca 1.2 Millionen einträgen. ca. 10 Spalten zzgl. 4 Spalten geJoint. Wobei ich 2 Spalten durchsuchen lasse.

    Soweit auch alles kein Problem.

    Nun lasse ich alles Ausgeben mit Pagingfunktion. Also Limit 0,10 usw usw.

    Nun mache ich zwei mal fast die identische Abfrage.
    1 x Um die num_rows abzufragen
    1 x um die auszugebenen Daten in ein mysql_assoc zu lesen.

    zwei Abfragen deshalb - weil ich möchte ja nur zum einen wissen wieviele results wurden insgesamt gefunden und um das Paging zu errechnen mit der zweiten Abfrage gebe ich ja schon ein Limit von 10 an. Deshalb erhalte ich bei dieser Abfrage immer nur ein num_rows von (10).

    Beide Abfragen sind bis auf das Limit am Ende so gut wie identisch wodurch sich die Abfragezeit so gut wie doppelt so lange sein müsste.

    Gibt es da eine Möglichkeit das irgendwie in einer Abfrage unterzubringen? Oder ist meine vorgehensweise normal und es geht gar nicht erst anders.

    Bin für jeden Tip dankbar.

    Cu SusiSorglos
    Zuletzt geändert von SusiSorglos; 13.06.2012, 13:12.
    PHP 8.0, MariaDB 10.5 auf U20.04

  • #2
    Stichwort: CALC_FOUND_ROWS
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Nur als generelle Ergänzug, die ideale Lösung hat Wahsaga genannt:

      Um Einträge zu zählen gibt es COUNT(). Das ist durchaus schneller als alle Datenbankeinträge zu selecten.

      Kommentar


      • #4
        Genau so etwas hatte ich gesucht. Wieder eine Abfrage gespart und schon läuft es etwas schneller.

        Obwohl die Beschreibung in der mySQL Manual etwas verwirrend ist.

        Thx
        PHP 8.0, MariaDB 10.5 auf U20.04

        Kommentar

        Lädt...
        X