Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] [mysql] Table Design bei grossen Datenmengen

Einklappen

Neue Werbung 2019

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

  • [Erledigt] [mysql] Table Design bei grossen Datenmengen

    Hallo

    Mein PHP Script speichert zur Zeit alle Inforamtionen in einer ASCCI-File.
    Das soll umgestellt werden auf mySQL.

    In den Files befinden sich weit mehr über 30tausend Zeilen an
    Informationen. Diese müssen in die Table geschrieben werden und es werden
    von Tag zu Tag um tausend Einträge mehr!

    Nun meine Frage - wie sollte ich das Design der Table gestallten um die
    Belastung des Server niedrig und die Geschweindigkeit hoch zu halten?

    Information die in der Ascii stehen Zeie für Zeile:
    1125446162#100|
    1125446157#100|
    usw.

    Eigendlich dachte ich an so etwas:

    CREATE TABLE `result_table` (
    `i_time` int(11) NOT NULL default '0',
    `i_wert` varchar(5) NOT NULL default '',
    KEY `i_time` (`i_time`)
    ) ENGINE=MyISAM;

    i_time -> 1125446157
    i_wert -> 100

    habt Ihr ne bessere Idee? oder gar andere Ideen?


    Ich habe für jeden User eine solche Ascii-Datei mit sovielen Einträgen.

    Nun habe ich überlegt ob die Ausgabe später der Daten schneller geht wenn
    ich für jeden User eine eigene Table anlege.

    oder soll ich alle user in eine Table speichern und mittels einer UserID
    diese dann "filtern".

    Ich bilde mir ein wenn jeder ne eigene Table bekommt würde es schneller
    gehen!

    denn eine Table weit über eine Million Einträge oder aber
    Tausend Tables a 30tausen Einträge?


    Wieviele Table maximal kann eien DB verwalten?

    Danke Euch für Eure Meinungen
    HS

  • #2
    http://dev.mysql.com/doc/mysql/en/cr...ny-tables.html

    30.000 tables sind nicht besonders sinnvoll, und ein paar millionen einträge sind keine wirklich große herausforderung für mysql - gerade wenn du mysql4 verwendest.

    sinnvolle indizierung macht sinn, ein wenig nachgucken, was jede einzelne abfrage macht (mit EXPLAIN ausdruck) ... und dann wird's schon.

    schau, dass du mit php möglichst wenig daten überhaupt aus der datenbank holst.

    Kommentar


    • #3
      Zitat von axo
      schau, dass du mit php möglichst wenig daten überhaupt aus der datenbank holst.

      Das sit das Problem ich muss auch teilweise mit mehreren 10000 Sätzen arbeiten!

      Kommentar


      • #4
        Und Du musst sie alle von mysql nach php schaufeln lassen? Warum denn?

        Kommentar


        • #5
          mysql kann u.a. zählen, addieren, multiplizieren und durchschnitte rechnen.
          allein mit der addition und SELECT LIMIT hast du bereits eine vollständige turingmaschine, wenn ich mich nicht täusche. d.h. jedes problem könnte sich theoretisch allein mit einer reihe von mysql-abfragen lösen lassen, ohne jemals daten aus der datenbank zu schaufeln.

          also: ein wenig länger überlegen, wie's gehen könnte, und das manual angucken.
          http://dev.mysql.com/doc/mysql/en/



          grüße
          axo

          Kommentar


          • #6
            allein mit der addition und SELECT LIMIT hast du bereits eine vollständige turingmaschine, wenn ich mich nicht täusche
            Dir fehlt das Speicherband

            Kommentar

            Lädt...
            X