Performence Probleme

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

  • Performence Probleme

    Hallo,
    ich habe jetzt sowas wie ein kleines Forum geschrieben und das ganze mit ca. 1.100.000 Einträgen getestet und es gibt riesen Probleme, mehr als 2 Minuten Ladezeit und nur um den aktuellsten Thread herauszufiltern:
    PHP-Code:
    $load3 mysql_query("SELECT * FROM forum.themen WHERE t_forum = '$id
    ORDER BY t_datum DESC LIMIT 1"
    ); 
    Wie kann ich das Problem lösen, wie kann ich trotzdem den aktuellsten Thread auslesen oder wie schaffen es die großen Forensoftwares?

  • #2
    cache?

    interessantes thema, werd's gespannt verfolgen.

    Kommentar


    • #3
      Original geschrieben von penizillin
      cache?

      interessantes thema, werd's gespannt verfolgen.
      Was meinst du genau damit?

      Kommentar


      • #4
        aehm ... eigentlcih sollte es bei 1,1 Mil. datensätze noch nciht wirklich probleme mit mysql geben ... vor allem NICHT wenn du nur diese DB-Abfrage schickst ...

        also entweder hast du sehr viele dbabfragen in deiner seite ODER sie sind nciht wirklich gut ... oder deine DB-Struktur ist mit netten worten gesagt etwas suboptimal ...

        du solltest wohl etwas mehr code zeigen

        eine frage : warum hast du um $id einfache anführungsstriche ...
        dies ist, wenn es ein integer ist nicht notwendig und ein id feld sollte eigentlich immer irgendwie mit zahlen dargestellt werden ... das ist dann einfach schneller

        gruss
        iglo

        Kommentar


        • #5
          hast du ein index auf ID gelegt? das sollte die anfrage grundsätzlich beschleunigen. das ORDER BY kannst du dir doch auch sparen wenn du nur ein tupel aus der datenbank benötigst
          Zuletzt geändert von Ray-D; 07.01.2005, 20:44.
          Software- und Webapplikationen

          Kommentar


          • #6
            Original geschrieben von Ray-D
            hast du ein index auf ID gelegt? das sollte die anfrage grundsätzlich beschleunigen. das ORDER BY kannst du dir doch auch sparen wenn du nur ein tupel aus der datenbank benötigst
            Ich weiß nicht, was du mit index meinst. Habe mal den Code als .txt beigelegt, der angegebene Code wird für jedes Forum gemacht, aber eigentliuch wie in jedem Forum.
            Angehängte Dateien

            Kommentar


            • #7
              turck mmcache, z.b.

              Kommentar


              • #8
                Einen Index erstellst du normalerweise schon, wenn du die Datenbank anlegst - da, wo du den Spalten Namen gibst, und auto_increment und so einstellst - geht aber auch noch hinterher.

                Original geschrieben von Ray-D
                das ORDER BY kannst du dir doch auch sparen wenn du nur ein tupel aus der datenbank benötigst
                Aber er will nicht "nur ein Tupel", sondern einen bestimmten Datensatz.
                hopka.net!

                Kommentar


                • #9
                  Es wird nicht automatisch die ID zugewiesen. Gibt es denn keine andere Möglichkeit?

                  Kommentar


                  • #10
                    hmmm ... kannst mal die dbs zeigen ????
                    die struktur (kannst in phpmyadmin recht einfach exportieren )

                    Kommentar


                    • #11
                      wie oft kommt denn jede ID vor?

                      Kommentar


                      • #12
                        Alle Datenbanken ist wohl etwas übertrieben ... eigentlich sollte die Struktur der Tabelle "forum.themen" vollkommen ausreichen ... !
                        carpe noctem

                        [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
                        [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

                        Kommentar


                        • #13
                          und bitte nicht die Daten mitexportieren und posten. *g*

                          Kommentar


                          • #14
                            Original geschrieben von kapitaeniglo
                            hmmm ... kannst mal die dbs zeigen ????
                            die struktur (kannst in phpmyadmin recht einfach exportieren )
                            Die kompletten Inhalte? Wenn nicht, wie kann ich nur die Tabellenstruktur exportieren?
                            Nein, jede ID kommt nur 1x vor.

                            EDIT:

                            -- phpMyAdmin SQL Dump
                            -- version 2.6.0-pl1
                            -- http://www.phpmyadmin.net
                            --
                            -- Host: localhost
                            -- Erstellungszeit: 07. Januar 2005 um 21:08
                            -- Server Version: 4.0.21
                            -- PHP-Version: 5.0.2
                            --
                            -- Datenbank: `forum`
                            --

                            -- --------------------------------------------------------

                            --
                            -- Tabellenstruktur für Tabelle `themen`
                            --

                            CREATE TABLE themen (
                            t_id int(8) NOT NULL default '0',
                            t_name varchar(160) NOT NULL default '',
                            t_beschreibung varchar(160) NOT NULL default '',
                            t_inhalt mediumtext NOT NULL,
                            t_autor varchar(70) NOT NULL default '',
                            t_datum int(12) NOT NULL default '0',
                            t_icon varchar(40) NOT NULL default '',
                            t_forum int(2) NOT NULL default '0'
                            ) TYPE=MyISAM;

                            Kommentar


                            • #15
                              Original geschrieben von Hopka
                              Aber er will nicht "nur ein Tupel", sondern einen bestimmten Datensatz.
                              Tut mir sehr leid, wenn ich etwas nicht richtig verstanden hab, aber ist denn ein Tupel nicht ein Datensatz (Zeile) aus einer Relation? Außerdem ist doch die Anfrage auf ein Ergebnis begrenzt (LIMIT 1). Daher erschien mir das ORDER BY als nicht notwendig, denn wonnach soll denn geordnet werden wenn jedes Attribut nur einmal vorkommt.

                              Sollte ich etwas falsch wiedergeben so entschuldige ich mich schonmal und bitte darum korrigiert zu werden
                              Software- und Webapplikationen

                              Kommentar

                              Lädt...
                              X