Andreas: wie am besten auslesen?

Hallo,
ich habe vor einen Shop zu erstellen und in der DB sind Rund 15.000 Artikel. Bisher habe ich die Artikel anhand der Kategorie ID sortieren können nun gibt es aber viele Unterkategorien in den Kategorien.
Zum Beispiel die Kategoriebeschreibung: Kat123/Unterkat1/Unterkat2

Ich könnte nun die Kategoriebeschreibung durchsuchen lassen (nach Kat123) und habe so auch alle Untergategorien der Rubrik. Nun meine Frage ist dies überhaupt Sinnvoll im Bezug der Serverauslastung?

Wie so eine DB arbeitet weiß ich leider nicht. Werden denn beim gezielten auslesen anhand der Kategorie ID auch alle 15.0000 Zeilen durchsucht?

MfG. Andreas

  1. Huhu Andreas

    ich habe vor einen Shop zu erstellen und in der DB sind Rund 15.000 Artikel.

    Wie so eine DB arbeitet weiß ich leider nicht.

    Dann lass es.

    Suche nach fertigen Shop-Systemen.

    Viele Grüße

    lulu

    --
    bythewaythewebsuxgoofflineandenjoytheday
    1. Hallo,
      wirklich Nette und hilfreiche Antwort !

      Dann lass es.

      Suche nach fertigen Shop-Systemen.

      1. Huhu Andreas

        wirklich Nette und hilfreiche Antwort !

        Ok, das klingt etwas schroff, aber einen Shop bastelt man nicht
        an einem Wochenende zusammen.
        Und da es da vermutlich um Geld geht kannst Du Dir auch schnell Ärger einhandeln wenn etwas nicht richtig funktioniert.
        Ein paar grundlegende Datenbankkenntnisse solltest Du schon haben.

        Wenn Du nur aus Interesse und zu Lernzwecken einen Shop programmieren möchtest ist das natürlich eine interessante Übungsaufgabe.
        Ansonsten bleibe ich dabei, suche ein fertiges Skript (kommerziell oder OpenSource) oder frage jemanden der sich damit auskennt.

        Viele Grüße

        lulu

        --
        bythewaythewebsuxgoofflineandenjoytheday
        1. hi,
          na so gefällt mir deine Antwort schon besser!

          Ich kann jedoch deine Besorgnisse nicht verstehen. Es ist schon klar das es um Geld geht aber das hat nichts mit der DB zu tun. Wenn die Seite ausfällt oder Serverfehler auftreten bestellt der Kunde nichts oder kommt nicht wieder.
          Das Problem würde allein bei mir hängen bleiben da ich dann den ärger mit dem Server habe.

          Einen Shop habe ich schon fertig die Frage besteht nur darin wie ich am besten die DB auslesen lassen kann ohne das es zu Störungen oder Ausfällen kommt. Weiterhin will ich auch versuhen den Traffic und den DB durchlauf so gering wie möglich zu halten.

          Daher wolle ich sehen ob ich hier ein paar Tips erhalten kann wie man eine DB aufbauen sollte(optimal) und ob ein durchsuchen aller 15.000 Artikel aktzeptabel ist oder ob man dies auf keinen Fall machen sollte.

          Andreas

          1. hi,

            Ich kann jedoch deine Besorgnisse nicht verstehen. Es ist schon klar das es um Geld geht aber das hat nichts mit der DB zu tun.

            doch, hat es.
            wenn du mit einer DB noch nicht richtig umgehen kannst, ist die gefahr groß, dass du konzeptionelle fehler einbaust, und auch sicherheitslücken, die manipulation von außen ermöglichen.

            Wenn die Seite ausfällt oder Serverfehler auftreten bestellt der Kunde nichts oder kommt nicht wieder.

            ja, aber das ist nur das _geringste_ denkbare problem.

            wenn du dort mit produktiven kundendaten rumhantierst, und diese in fremde hände gelangen, hast du ein sehr viel größeres problem, als du es dir offenbar derzeit vorstellen kannst.

            gruß,
            wahsaga

            --
            "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
          2. Huhu Andreas

            Daher wolle ich sehen ob ich hier ein paar Tips erhalten kann wie man eine DB aufbauen sollte(optimal) und ob ein durchsuchen aller 15.000 Artikel aktzeptabel ist oder ob man dies auf keinen Fall machen sollte.

            Doch das sollte man in jedem Fall machen.
            Ein Shop ohne vernünftige Suche ist nichts wert.
            Damit das dann auch schnell geht helfen Indizes, da hast Du ja schon Tipps und Erklärungen von Cheatah bekommen.
            Wie das im Detail funktioniert ist vom verwendeten Datenbanksystem abhängig.

            Viele Grüße

            lulu

            --
            bythewaythewebsuxgoofflineandenjoytheday
  2. Hi,

    Ich könnte nun die Kategoriebeschreibung durchsuchen lassen (nach Kat123) und habe so auch alle Untergategorien der Rubrik. Nun meine Frage ist dies überhaupt Sinnvoll im Bezug der Serverauslastung?

    das lässt sich so pauschal nicht beantworten. Eventuell sind für die Rubriken ein oder zwei Tabellen mit einem Kanten-/Knoten-Modell angebracht.

    Wie so eine DB arbeitet weiß ich leider nicht. Werden denn beim gezielten auslesen anhand der Kategorie ID auch alle 15.0000 Zeilen durchsucht?

    Hierfür gibt es Indexe. Wenn Du keinen günstigen anlegst, muss das DBMS tatsächlich einen Full Table Scan mit 15.000 Zugriffen und Vergleichen durchführen. Mit Index sind's vielleicht ein halbes Dutzend.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hi,
      die DB habe ich mir anlegen lassen weil ich eben damit noch keine Erfahrung habe, das wollte ich aber ändern indem ich jetzt selbst weiter daran arbeite.
      Du sprichst von index anlegen, weil leider damit nichts anzufangen. Gibt es denn dazu gute Beschreibungen wenn es geht auf Deutsch im Netz?

      Eine Frage hätte ich noch was würde denn sein wenn er tatsächlich jedesmal alles durchsuchen müßte?
      Vieleicht helfen die Daten beim einschätzen.
      Speicherplatzverbrauch :
      Typ Verbrauch
      Daten 15.715 KB
      Index 13.406 KB
      Insgesamt 29.121 KB

      Hierfür gibt es Indexe. Wenn Du keinen günstigen anlegst, muss das DBMS tatsächlich einen Full Table Scan mit 15.000 Zugriffen und Vergleichen durchführen. Mit Index sind's vielleicht ein halbes Dutzend.

      1. hi,

        Du sprichst von index anlegen, weil leider damit nichts anzufangen.

        <?t=93570&m=565482>

        Gibt es denn dazu gute Beschreibungen wenn es geht auf Deutsch im Netz?

        schau ins manual des von dir verwendeten DBMS.
        welches dies ist, hast du uns ja immer noch nicht mitgeteilt.

        gruß,
        wahsaga

        --
        "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
      2. Hi,

        die DB habe ich mir anlegen lassen

        mit "die DB" meinst Du vermutlich das DBMS inklusive Zugang. Das ist vergleichbar damit, einen Webserver aufzusetzen: grundlegend, aber nicht weiterführend. Das wirklich Relevante ist das Schema, welches Du Deinen Bedürfnissen entsprechend erstellen musst. Dazu gehören insbesondere Tabellen, Indexe und die SQL-Statements.

        Du sprichst von index anlegen, weil leider damit nichts anzufangen. Gibt es denn dazu gute Beschreibungen wenn es geht auf Deutsch im Netz?

        Suche nach "SQL in 21 Tagen".

        Eine Frage hätte ich noch was würde denn sein wenn er tatsächlich jedesmal alles durchsuchen müßte?

        Stell Dir vor, Du möchtest im Kaufhaus ein Deo-Spray kaufen. Du hast die Möglichkeit, den Wegweiser an den Rolltreppen sowie die Schilder über den Regalen zu konsultieren - das ist der Index. Oder Du gehst von unten bis oben durch _jedes_ Regal und schaust, ob sich Deos dort befinden, und suchst auch dann weiter, wenn Du schon welche gefunden hast, weil Du ja nicht weißt, ob es die einzigen sind. Das ist der Full Table Scan.

        Vieleicht helfen die Daten beim einschätzen.

        Nö. Wenn das Kaufhaus außer Deos und Zahnbürsten nichts weiter führt, wäre der Weg über den Index zu umständlich. In allen anderen Fällen ist er enorm hilfreich.

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
        1. hi,
          ich denke ihr habt mir schoneinmal alle geholfen...

          Bin gerade dabei mich mit dem index vertraut zu machen und werde versuche diesen einzurichten.

          http://download.pearsoned.de/leseecke/SQL_21Tg/data/kap10.htm#TopOfPage

          Andreas

  3. hi,
    nun habe ich mir alles über das anlegen eines index durchgelesen und habe es glaube noch nicht so richtig verstanden. Ich weiß jetzt das ein index über einer Spalte dort virtuelle Zeiger vergibt und diese sortiert.

    Nun habe ich bei phpMyAdmin auf "1 index erstellen" geklickt einen Namen vergenen und die Spalte ausgewählt welche durchsucht werden soll.
    Nun ist der index erstellt was nun, war es das etwa schon ?

    Andreas

    1. hi,

      Nun habe ich bei phpMyAdmin auf "1 index erstellen" geklickt einen Namen vergenen und die Spalte ausgewählt welche durchsucht werden soll.
      Nun ist der index erstellt was nun, war es das etwa schon ?

      ja.

      mysql nutzt jetzt diesen index, wenn du suchanfragen bzgl. dieser spalte machst.

      gruß,
      wahsaga

      --
      "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
    2. Hi,

      Nun habe ich bei phpMyAdmin auf "1 index erstellen" geklickt einen Namen vergenen und die Spalte ausgewählt welche durchsucht werden soll.

      erwähnenswert wäre noch, dass ein Index durchaus über mehrere Spalten einer Tabelle gehen kann - und in den meisten Fällen auch sollte. Die Reihenfolge der Spalten ist dabei wichtig; es sollte so schnell wie möglich so viel wie möglich eingeschränkt werden. Noch einmal zur Erinnerung: Die SQL-Statements gehören mit zum Schema.

      Cheatah

      --
      X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
      X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
      X-Will-Answer-Email: No
      X-Please-Search-Archive-First: Absolutely Yes