[MySQL 3.23.X] Performance-Steigerung

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

  • [MySQL 3.23.X] Performance-Steigerung

    Hallo liebe Leute,

    ich habe eine Tabelle in der sich immer so überdimensioniert viele Einträge befinden so ca. 100 000 - 500 000 je nachdem... Also sagen wir mal eine halbe Mio. für die Zukunft ist dann besser vorgesorgt.

    Das Problem ist nun, ich habe bereits 100 000 Einträge, die ich abfrage, mit vielen PHP-Schleifen (while) und mysql_fetch_object();

    Es dauert relativ lang und so wollte ich fragen, was man beachten muss, damit man die höchstmögliche Performance erreicht!?

    Danke!

    Grüßle

  • #2
    gut indizieren
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      MySQL vergrößern, damit er die gesamte Tabelle/DB im Ram halten kann.
      Damit habe ich schon SQL Scripte von 4h Ausführungszeit auf 5min beschleunigt
      TBT

      Die zwei wichtigsten Regeln für eine berufliche Karriere:
      1. Verrate niemals alles was du weißt!


      PHP 2 AllPatrizier II Browsergame

      Kommentar


      • #4
        Original geschrieben von MelloPie
        gut indizieren
        Wie geht das, was bewirkt es? Wie kann ich es nachträglich einstellen?

        Kommentar


        • #5
          phpmyadmin nehmen und einen index auf eine treffende spalte setzen.
          INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


          Kommentar


          • #6
            Im übrigen würde ich mir mal die Frage stellen aus welchem Grunde Du 100TSD - 500TSD Datensätze mit mysql_fetch_object() durch grabbelst ... oft läßt sich manche "Handarbeit" gut von der DB erledigen ...

            ... in den seltensten Fällen wirst Du ja nun 100TSD Datensätze auf einer HTML/PHP Seite anzeigen wollen da damit oft der Browser überfordert ist ...
            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


            • #7
              Original geschrieben von goth
              Im übrigen würde ich mir mal die Frage stellen aus welchem Grunde Du 100TSD - 500TSD Datensätze mit mysql_fetch_object() durch grabbelst ... oft läßt sich manche "Handarbeit" gut von der DB erledigen ...

              ... in den seltensten Fällen wirst Du ja nun 100TSD Datensätze auf einer HTML/PHP Seite anzeigen wollen da damit oft der Browser überfordert ist ...
              Hi,


              Es ist aber zwingend notwendig, weil aus den Werten Berechnungen durchgeführt werden...

              Gruss

              Kommentar


              • #8
                was für berechnungen ??

                viele berechnungen kannst du von der Datenbank intern regeln lassen, alles eine Frage des SQL-Statements

                gruss

                Kommentar


                • #9
                  Hi,

                  ja ich weiss... z.B. sum() bla bla ist ein SQL Befehl... Aber daran liegts nicht.
                  Ich habe das mit dem Index gemacht, brachte bereits einen kleinen Speed-Schub... =)

                  Was könnte ich denn noch machen?

                  Gruss

                  Kommentar


                  • #10
                    aggregation!
                    ich denke mal es ändern sich nicht jedesmal 100.000 daten, so dass du die berechnung komplett neu machen musst.

                    Kommentar


                    • #11
                      wenn man trotzdem wüßte, was du für berechnungen machst, könnte man vielleicht teile davon nach sql auslagen!

                      gruss

                      Kommentar


                      • #12
                        Original geschrieben von presentweb
                        Hi,

                        ja ich weiss... z.B. sum() bla bla ist ein SQL Befehl... Aber daran liegts nicht.
                        Ich habe das mit dem Index gemacht, brachte bereits einen kleinen Speed-Schub... =)

                        Was könnte ich denn noch machen?

                        Gruss
                        Na wenn sum() die einzige berechnung is die dir einfällt dann lies mal lieber ein bissi im manual nach.
                        Beantworte nie Threads mit mehr als 15 followups...
                        Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                        Kommentar


                        • #13
                          Hallo

                          Leute, reitet nicht immer auf den Berechnungen durch, es sind halt einfache Summenrechnungen...
                          Aber nicht nur das, denn es müssen auch Daten ausgegeben werden (an Browser) mit Bedingung WHERE bla = '' etc...

                          Ach, das klingt interessant! In der Tat es ändern sich die Daten nie...
                          Es kommen halt immer nur neue dazu!

                          Gruss

                          Kommentar


                          • #14
                            Original geschrieben von TBT
                            MySQL vergrößern, damit er die gesamte Tabelle/DB im Ram halten kann.
                            Wo kann man das einstellen?
                            it's not a bug,
                            it's a feature!

                            Kommentar


                            • #15
                              Original geschrieben von XGremliN
                              Wo kann man das einstellen?
                              genau wie geht das, vorallem, wenn man Webspace Kunde ist?

                              Kommentar

                              Lädt...
                              X