Performance bei mehreren SELECTs auf gleiche Tabelle

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

  • Performance bei mehreren SELECTs auf gleiche Tabelle

    Hallo,

    Ich habe eine Webseite bei der ich eine mySQL Abfrage mit PHP durchführe.

    In der linken Navigation dieser Seite möchte ich spezielle Links einblenden,
    die jedoch nur dann angezeigt werden sollen, wenn entsprechende Datensätze vorhanden sind.

    Mein Problem (sofern es eines aus performance Gründen ist) ist, dass ich dadurch auf ein und dergleichen Seite insgesamt 5 mySQL Abfragen haben, die alle die gleiche Tabelle als Quelle haben.

    Ist dies aus Performacegründen schlecht, bzw. welche Alternativen würde es geben?

    Vielen Dank für die Hilfe und schöne Grüße,
    Max

  • #2
    Zitat von max479 Beitrag anzeigen
    bzw. welche Alternativen würde es geben?
    Auf die Datenbankanfragen zu verzichten.


    Das scheint dir keine gute Antwort zu sein? Nun, mehr erlaubt deine Fragestellung nicht. Ob sich irgendwas zusammenfassen oder sonstwie optimieren liesse, kann man nicht sagen, ohne zu wissen, was du abfragst und wie.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      5 Abfragen sind doch _nichts_. Wo ist dein Problem?

      Kommentar


      • #4
        Die allerbeste Performance erhält man

        a. cache Datei verwenden wenn vorhanden, wenn nicht
        1. eine einzige SQL Abfrage absetzen
        2. intern aufbereiten soweit nötig
        3. als cache ablegen
        b. über ein Templatesystem zur Anzeige bringen
        Die Abhängkeiten wie Submenü anzeigen oder nicht erledigt man im Template.

        Die Performance ist nicht zu schlagen.
        Bei mir sieht eine Abfrage z.B. so aus:

        Code:
        SELECT DISTINCT SUBSTRING(hierarchy,1,5) as firsthierarchy,SUBSTRING(hierarchy,7,5) as secondhierarchy,SUBSTRING(hierarchy,13,5) as 
        thirdhierarchy,SUBSTRING(hierarchy,20,5) as fourthhierarchy ,SUBSTRING(hierarchy,27,5) as fifthhierarchy ,CHAR_LENGTH(hierarchy) - 
        CHAR_LENGTH(REPLACE(hierarchy,'.','')) +1 as level,content_id,hierarchy,menu_text,content_alias,titleattribute,default_content FROM cms_content USE 
        INDEX(hierarchy) WHERE active=1 AND show_in_menu= 1 AND sprache = 'de' AND ( hierarchy='00001' OR default_content=1) ORDER BY hierarchy
        und damit baue ich über Templates alles was benötigt wird

        Hauptnavigation, Subnavigation, Breadcrumbs, PrevNext und das in jeglichen Menüarten.

        Grundsätzlich gut ist - alles was geht auf Mysql abschieben und wenn möglich mit so wenig Abfragen wie möglich.
        Abfragen kosten Zeit, schlechte Abfragen mit tierischer Nacharbeit auf PHP Basis aber noch mehr.

        Die Performance mancher Scripte leidet sehr darunter, wenn man zuviele und zu billige SQL Abfragen macht die erhebliche Nacharbeit unter PHP erfordern.
        Zuletzt geändert von ; 29.06.2009, 14:28.

        Kommentar

        Lädt...
        X