80MB Datenbank

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 80MB Datenbank

    So stehe vor einem kleinen Problem:
    Ich habe eine Datenbank mit 5 Tabellen:

    (Zusammengestutzt):
    Datum
    ------------------------
    DID | Datum

    IP
    -----------------------
    IPID| IP


    Prozess
    ____________
    ID | FDID | FIPID| Dauer | Anzahl

    ProzessTOtyp
    ------------------------------
    FID | FKID

    Typ
    --------------------------
    KID | Bezeichnung


    Prozess 1:n IP
    Prozess 1:n Datum
    Prozess m:n Typ

    So nun zu meinem Problem:

    Die Datenbank hat jetzt ka 5 mil Einträge. Und ist schon unglaublich langsam und stürzt bei einigen Abfragen sogar teilw. ab. Leider habe ich keine Idee, wie ich das ummanagen könnte, dass das alles ein wenig besser läuf.
    Evtl Pro Tag eine Eigene ProzessTabelle ProzessTOKind? (Das Wären dann so 300k-400k Schnäppchen?)
    Für Rechtschreibfehler übernehme ich keine Haftung!

  • #2
    Re: 80MB Datenbank

    Die Anzahl Datensätze sollte, entsprechende Ressourcen vorausgesetzt, eigentlich noch kein Problem darstellen.
    (Btw: Welches DBMS - MySQL?)

    Aber Abfragen über so eine Datenmenge können natürlich ziemlich lange dauern, wenn keine sinnvollen Indices gesetzt sind.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Comment


    • #3
      Re: Re: 80MB Datenbank

      Original geschrieben von wahsaga
      Die Anzahl Datensätze sollte, entsprechende Ressourcen vorausgesetzt, eigentlich noch kein Problem darstellen.
      (Btw: Welches DBMS - MySQL?)

      Aber Abfragen über so eine Datenmenge können natürlich ziemlich lange dauern, wenn keine sinnvollen Indices gesetzt sind.
      Jup Mysql, hatte ich gan vergessen.
      Inwiefern sinvolle Indices?
      Für Rechtschreibfehler übernehme ich keine Haftung!

      Comment


      • #4
        Wie sehen deine Abfragen aus?

        Mach mal EXPLAIN SELECT... und schau dir die Ausgabe an
        Ich denke, also bin ich. - Einige sind trotzdem...

        Comment


        • #5
          Original geschrieben von mrhappiness
          Wie sehen deine Abfragen aus?
          zB so:

          PHP Code:
          Select            IP.IPMAX(Prozess.Dauer) as longest
                                  
          COUNT(IP.IP) as con
                                  
          AVG(Prozess.time) as averange 
          FROM            Prozess 
          LEFT JOIN    IPs 
          ON                  Prozess
          .FIPID IP.IPID 
          LEFT JOIN    Datum 
          ON                  Prozess
          .FIDdate Datum.dID 
          WHERE         Datum
          .datum '2006-11-30' 
          GROUP BY   ip 
          ORDER BY    ip asc 
          LIMIT              0
          ,15 
          Mach mal EXPLAIN SELECT... und schau dir die Ausgabe an
          Kann ich irgendwie nichts damit anfangen, da ich nicht weiss, worauf geachtet werden mus. :/

          Hab versucht mich ein wenig über sinnvolle Indicies zu informieren, habe aber leider nichts bauchbares gefunden -.-

          Hat jemand vlt. einen guten Link? Oder kann mir genau sagen, nach was ich suchen muss?

          Vielen dank!
          Für Rechtschreibfehler übernehme ich keine Haftung!

          Comment


          • #6
            ich würde sagen, erstmal das hier lesen: http://www.mysql.org/doc/refman/5.1/en/explain.html danach wird's dir auch vieles klarer

            Comment


            • #7
              Original geschrieben von asp2php
              ich würde sagen, erstmal das hier lesen: http://www.mysql.org/doc/refman/5.1/en/explain.html danach wird's dir auch vieles klarer
              rofl, darauf hät ich auch selber kommen können

              danke
              Für Rechtschreibfehler übernehme ich keine Haftung!

              Comment

              Working...
              X