Performance Frage (Array / SQL)

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

  • Performance Frage (Array / SQL)

    Hallo Leute,

    ich erstelle momentan mittels PHP verschiedene Textdateien, anhand von Einstellungen die ein Benutzer tätigt. Ich verdeutliche das mal an einem Beispiel.

    Tabelle songs -> 5500 Einträge.
    track-id
    kategorie


    Kunde hat 5 Kanäle und stellt folgendes ein:
    kanal 1 -> stil 1 und stil 2
    kanal 2 -> stil 2 und stil 3
    kanal 3 -> stil 1 und stil 4
    kanal 4 -> stil 1 und stil 3 und stil 4
    kanal 5 -> stil 5

    Momentan wird für jede Stunde des Tages (0-23) ein Query gemacht mit den Kriterien:

    z.b. Für Kanal 1 würde das dann so aussehen:
    PHP-Code:
    SELECT FROM b_songs WHERE (kategorie='1' OR 
    kategorie='2') AND gema '1' ORDER BY RAND() 
    Im schlimmsten Fall sind das also bei 5 Kanälen pro User 120 Querys, also bei 90 Usern 10800 Querys. Zur Zeit benötigt das Script für alle Kanäle ca 480 Sekunden.

    Wäre es sinvoller vorher alle Songs in einem Array zu speichern und dann aus diesem Pool die Lieder nehmen?
    The Human Mirror - Mein Blog!
    www.sonicsense.de - The future of music!

  • #2
    ORDER BY RAND()
    Das wäre schon mal ein Punkrt zur Performancesteigerung - mehr dazu findet sich im Web.

    Dann solltest du probieren jeweils die gleichen Kategoriesetzung (auch bei unterschiedlichen Channels) zusammenzufassen und dann für die einzlnen User / Kanäle extra zu mischen. Damit wärst du bei max. 31 Querys.
    Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

    Kommentar

    Lädt...
    X