Performence Probleme

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

  • #16
    Er will wahrscheinlich das neueste, deshalb zuerst nach Datum sortieren, und dann nur den ersten ausgeben.

    Kommentar


    • #17
      Es wird ja erst sortiert, und dann wird eine Zeile (die oberste) genommen. Er will halt einen bestimmten Datensatz und nicht irgendeinen (Betonung liegt auf bestimmten und nicht auf Datensatz).
      hopka.net!

      Kommentar


      • #18
        Original geschrieben von Hopka
        Es wird ja erst sortiert, und dann wird eine Zeile (die oberste) genommen. Er will halt einen bestimmten Datensatz und nicht irgendeinen (Betonung liegt auf bestimmten und nicht auf Datensatz).
        Und wie wird das in den großen Forensoftwares durchgesetzt, machen diese das anders als ich?

        Kommentar


        • #19
          Schau dir das mal an:
          http://dev.mysql.com/doc/mysql/de/SELECT_speed.html
          OffTopic:
          Puh, endlich das richtige Forum getroffen... siehe: http://www.php-resource.de/forum/sho...threadid=19451

          Kommentar


          • #20
            Also ich weiß nicht, ob ich es richtig verstanden habe, ich soll jetzt einen Index erstellen, d.h. Z.B. für die ID und dann?

            Kommentar


            • #21
              Ein Index beschleunigt in vielen Fällen eine Anfrage. Dabei entscheidet der Anfrageoptimierer, ob er den Index nutzt oder nicht. Mit anderen Worten: Wenn ein Index angelegt ist, musst Du nichts weiter machen. Sollte es vorteilhaft sein diesen zu nutzen, wird es der Optimierer hoffentlich richtig erkennen und ausführen.

              Hast Du denn schon einen unterschied in der Anfragezeit feststellen können?
              Software- und Webapplikationen

              Kommentar


              • #22
                Original geschrieben von Ray-D
                Ein Index beschleunigt in vielen Fällen eine Anfrage. Dabei entscheidet der Anfrageoptimierer, ob er den Index nutzt oder nicht. Mit anderen Worten: Wenn ein Index angelegt ist, musst Du nichts weiter machen. Sollte es vorteilhaft sein diesen zu nutzen, wird es der Optimierer hoffentlich richtig erkennen und ausführen.

                Hast Du denn schon einen unterschied in der Anfragezeit feststellen können?
                Nein, ich weiß ja nicht, was ich nun in die Abfrage schreiben soll, wenn ich vor select ein EXPLAIN setze, dann wird es erheblich schneller, aber ich kann keine Ausgabe mehr anzeigen, was muss ich in die Abfrage schreiben?

                Kommentar


                • #23
                  hast Du den Index jetzt schon erstellt? In der Anfrage ändert sich nichts. Diese bleibt so wie sie ist.
                  Software- und Webapplikationen

                  Kommentar


                  • #24
                    Original geschrieben von Ray-D
                    hast Du den Index jetzt schon erstellt? In der Anfrage ändert sich nichts. Diese bleibt so wie sie ist.
                    Ich habe ID als auto_increment festgelegt, sowie als Primärschlüssel, wie legt man denn einen Index an?

                    Kommentar


                    • #25
                      Wenn Du mit phpMyAdmin arbeitest gibt es eine Checkbox die einen Index automatisch anlegt. Du suchst dir also die Tabelle in phpMyAdmin raus, wählst die Spalte auf die Du den Index legen möchtest und klickst die Checkbox "Index" an. Arbeitest Du hingegen in der SQL-Konsole dann ist dieser Befehl das was Du suchst:
                      create index <name> on <table> (<column> [ASC | DESC] );
                      Software- und Webapplikationen

                      Kommentar


                      • #26
                        Danke, hab ich gefunden, es wird schon erheblich besser, aber trotzdem relativ langsam, ca. 1-2 Sekunden Ladezeit bei 60.000 Einträgen, kann ich da noch was machen? Welchen Zeichenketten-Datentyp sollte ich für den Inhalt des Threads verwenden "Mediumtext"?

                        Muss ich immer wieder einen Index erstellen?
                        Wie machen denn das nun die großen Forenhersteller, denn da läuft das ja alles ruckzuck!?
                        Zuletzt geändert von ; 07.01.2005, 22:58.

                        Kommentar


                        • #27
                          Ich weiss nicht genau, wieviele Zeichen Deine Beiträge benötigen aber evtl. kommst Du ja auch schon mit 64K aus, siehe TEXT/BLOB. Damit lassen sich schon ziemlich lange Text schreiben.

                          TINYTEXT, TINYBLOB Maximal 255 Zeichen (8 bit).
                          TEXT, BLOB Maximal 65535 Zeichen (16 bit).
                          MEDIUMTEXT, MEDIUMBLOB Maximal 16777215 Zeichen (24 bit).
                          LONGTEXT, LONGBLOB Maximal 4294967295 Zeichen (32 bit). Longtext ist mit Vorsicht zu geniessen, da Ein- und Ausgabe meist nicht so viele Zeichen zulassen.
                          Software- und Webapplikationen

                          Kommentar


                          • #28
                            Danke!
                            Muss ich immer wieder einen Index erstellen? Wie machen denn das nun die großen Forenhersteller, denn da läuft das ja alles ruckzuck!?

                            Kommentar


                            • #29
                              Die Großen Forenhersteller machen sich vermutlich sehr viele Gedanken zum Aufbau ihrer Datenbank und zur Anfrageoptimierung, welches ein sehr komplexes Thema ist. Dieses lässt sich wohl leider nicht in ein-zwei Sätzen erklären. Man kann aber einiges dazu im Netz finden.

                              Wenn es bei Dir immer noch relativ langsam geht, kann es auch am Aufbau des HTML-Teils liegen. Vielleicht kann man hier auch noch Performance rausholen. Oder laufen noch andere Skripte auf der Startseite. Pauschal kann ich Dir das leider nicht beantworten.

                              Und nein, Du musst nicht immer ein Index erstellen. Dieser verursacht mehr Arbeit auf dem Server beim Einfügen neuer Einträge. Aber ein Index auf den PRIMARY_KEYs ist zum Beispiel oftmals sinnvoll. Hierrüber joint man ja verschiedene Tabellen miteinander oder sucht aus einer großen Datenmenge nur wenige Datensätze raus.

                              Ich hoffe das hilft ein bisschen beim Verständnis
                              Software- und Webapplikationen

                              Kommentar


                              • #30
                                Ja danke, ich habe mal geguckt, z.B. PHPBB macht es so, dass der Text des Threads nochmal einzelln gespeichert wird, ist es eigentlich sinnvoll, z.B. den Username und Userlevel und letzte Aktivität in eine andere Tabelle zu speichern und dann Profil etc. auch in eine andere, bringt das Performencepluspunkte?

                                Kommentar

                                Lädt...
                                X