Ankündigung

Einklappen
Keine Ankündigung bisher.

Grosse Datenbank verwalten (evt. komprimieren)????

Einklappen

Neue Werbung 2019

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

  • Grosse Datenbank verwalten (evt. komprimieren)????

    Hallo

    1. Ich habe eine sehr grosse Tabelle mit ungefähr 500.000 Einträgen. Ich habe bemerkt dass mySQL in letzter Zeit immer langsamer wird. Kann das daran liegen dass die Datenbank komprimiert oder optimiert werden muss (so wie man das von Zeit zu Zeit bei Access machen muss)?

    Wenn ja, wie macht man das bei mySQL?

    2. Wo werden die Datenbanken überhaupt gespeichert? Ich will die Grösse der Datenbank herausfinden...

    /Patrick

  • #2
    hast du kein
    phpmyadmin?
    mysql administrator?

    Kommentar


    • #3
      Ich arbeite im Dos-Fenster
      Den Rest übernimmt PHP

      Kommentar


      • #4
        Bei Zugriff auf die Datenbank führe beispielsweise OPTIMIZE TABLE einmal aus (ist ein normaler SQL, siehe Handbuch). Datenbanken, wo die Daten sehr oft verändert werden, müssen hin und wieder reorganisiert werden.

        Die Datenbanken befinden sich in einem eigenen Verzeichnis, Verzeichnis data unterhalb der MySQL-Installation oder alternativ unter Unix auch bei Std-Installationen sehr oft in /var/lib/mysql/data

        Kommentar


        • #5
          Hmm, also ich habe meine Datenbank schon unter "Data" gefunden, aber der gesamte Ordner ist nur 180KB gross. Das kann jedoch nicht sein, da die Datenbank unter Access 1GB gross war und das bei Komprimierten Zustand.

          /Patrick

          Kommentar


          • #6
            Wieso kann das nicht sein? Ist durchaus denkbar, dass es deutlich kleiner ist. Vergleiche Access nicht mit MySQL...

            Aber 180K klingt für 500k Datensätze durchaus etwas wenig, da gebe ich dir recht. Ändert aber nichts an meinem anderen Hinweis...

            Informationen findest du auch per SHOW TABLE STATUS... Siehe Handbuch.

            Kommentar


            • #7
              Ich habe jetzt mal die Tabelle optimiert. Kann es sein dass der PHP Zugriff auf die Tabelle etwas langsam ist? Denn im einfachen Dos-Fenster lassen sich die Abfragen doch noch sehr schnell ausführen.

              /Patrick

              Kommentar


              • #8
                wie greifst du denn auf die daten zu. poste mal ein skript

                Kommentar


                • #9
                  ungefähr so:

                  $result = mysql_query("SELECT * FROM apachelog WHERE date BETWEEN '2006-03-03' AND '2006-04-03'");
                  while ($row = mysql_fetch_array($result)) {
                  echo "<tr><td> $row[0] </td><td> $row[1] </td>..........
                  }

                  Jedoch werden ungefähr 25 solcher SQL-Anweisungen ausgeführt und im normalen DOS-Fenster benötigt diese Anweisungen ungefähr 1min. In PHP das fünffache.

                  /Patrick

                  Kommentar


                  • #10
                    was heist den ungefähr 25 solcher anweisungen
                    wie währe es den mit einem LIMIT du brauchst doch nicht alle daten
                    zumindest nicht auf einmal oder?
                    schreib dir einfach eine kleine funktion die das "weiter blättern" ermöglicht.

                    Kommentar


                    • #11
                      Liegt auf dem Feld 'date' ein Index? Wenn nicht, mache einmal einen drauf.

                      ALTER TABLE aapachelog CREATE KEY k_date(date)

                      Kommentar


                      • #12
                        In der Tabelle werden ausschliesslich Logs eines Servers gespeichert und anhand dieser Abfragen soll die Serveraktivität errechnet werden. Dazu sollen auch noch Statistiken per Wochentag und Monat angezeigt werden. Also bruache ich für jeden Wochentag und für jeden Monat eine Abfrage. Dazu kommen noch einige separate Abfragen.

                        Dann muss ich eben alles auf mehrere Seiten verteilen.

                        /Patrick

                        Kommentar


                        • #13
                          Trotzdem ist die Frage nach dem Index gut.
                          Gibt es einen Index für date?

                          Kommentar


                          • #14
                            dann würde ich doch umdenken
                            1.tagesstatistik speicher
                            2.aus tagesstatistik wochenstatistik machen usw.
                            das heist eine neue tabelle anlegen und das prog nur einmal am tag laufen lassen

                            Kommentar


                            • #15
                              In der Tabelle werden ausschliesslich Logs eines Servers gespeichert und anhand dieser Abfragen soll die Serveraktivität errechnet werden. Dazu sollen auch noch Statistiken per Wochentag und Monat angezeigt werden. Also bruache ich für jeden Wochentag und für jeden Monat eine Abfrage. Dazu kommen noch einige separate Abfragen.

                              Dann muss ich eben alles auf mehrere Seiten verteilen.

                              /Patrick

                              Kommentar

                              Lädt...
                              X