Wie soll ich das Auslesen von riesigen Datenmängen optimieren?

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

  • phaselapfel
    replied
    Was soll jetzt optimiert werden? Das INSERT oder SELECT?

    Wenn SELECT: Wie CiaoSen schon sagte, könntest du die Daten irgendwie cachen. Das habe ich zwangsweise auch mal gemacht, da eine normale Seite um die 3 Sekunden zum Generieren gebraucht hat.

    Ich habe mir dann eine lookup-table programmiert, die direkt den ganzen Output einer Seite mit ob_start() und Familie gespeichert hat.

    Logik war dann beim Aufruf folgende:

    Code:
    if (is_cached("startseite"))
        print_cache("startseite");
    else
        startseite_generieren_cachen_ausgeben();
    Immer, wenn sich dann etwas auf der Startseite verändert hat, wird der Cache-Eintrag "startseite" gelöscht und neu generiert. Natürlich muss man nicht direkt eine ganze Seite cachen, man kann auch nur Teile einer Seite cachen. Das könnte nützlich sein, wenn du auf ältere Daten stehst (bzw. könnteste auch automatisch jede Minute den Cache aktualisieren).

    Alternativ könnte ich mir vorstellen, dass es viel helfen würde, wenn du die Tabelle kleinhälst. Das heißt, wenn du z.B. mehr als eine Millionen Einträge hast, legst du eine neue Tabelle an. Das sollte eigentlich gut funktionieren, denn ich glaube nicht, dass du immer 100% der Daten auf einmal anzeigen musst.

    hope dat helps

    Leave a comment:


  • AmicaNoctis
    replied
    Ich hab dich nicht verstanden, jetzt weiß ich aber, dass du eine Datei meinst.

    Leave a comment:


  • CiaoSen
    replied
    also entwerder verstehst du mich nicht oder ich dich.

    was ich meine ist, er will ja aktionen protokolliere, es könnten sachen für statistiken sein oder die schritte die gemacht werden bevor ein fehler passiert.
    Und solche sachen cached man für eine längere Zeit, deswegen die informationen in eine php datei schreiben die über php erzeugt wird.
    Und diese daten sollen in dem erzeugtem file als array stehen, damit er es später leichter hat die auszugeben.
    Wie er es anstellen will weiß ich nicht, aber das ist nur ein vorschlag um die ladezeit der seite zu verkürzen.

    mfg jura

    Leave a comment:


  • AmicaNoctis
    replied
    @CiaoSen

    Wo sollen die denn hin gecachet werden? Das versteh ich nicht. Du meintest in ein PHP Array. Das ergibt doch keinen Sinn, etwas in einem Kontext zu cachen, der nur für den Bruchteil einer Sekunde existiert, wie z. B. ein PHP Skript.

    Leave a comment:


  • CiaoSen
    replied
    @Amica

    damit spart er sich die mysql abfragen von so vielen Datensätzen.
    Die kannt er ja dann Monatlich cachen und die neuesten evt. aus der db lesen oder auch cachen und das ist dann um einiges schneller.

    Speichern kann er die trotzdem noch in der db.

    mfg jura

    Leave a comment:


  • Slava
    replied
    bitte
    1) 'show cteate table deinetabelle' anzeigen
    2) query, die du bei bei der anzeige benztzt (ohne PHP-Variablen)
    3) die grösse von Tabelle (select count(*) from tabelle)

    Leave a comment:


  • AmicaNoctis
    replied
    Originally posted by CiaoSen View Post
    cache die informationen in ne php als array und ließ sie da aus
    Inwiefern würde das denn helfen?

    Gruß,

    Anja

    Leave a comment:


  • CiaoSen
    replied
    cache die informationen in ne php als array und ließ sie da aus

    mfg jura

    Leave a comment:


  • AmicaNoctis
    replied
    Du musst ja nicht alles auf einmal anzeigen. Stattdessen könntest du nur jeweils einen Tag darstellen und zusätzlich eine Art anklickbaren Kalender, um den anzuzeigenden Tag zu wechseln.

    Leave a comment:


  • Wie soll ich das Auslesen von riesigen Datenmängen optimieren?

    Hallo,

    ich habe hier eine Tabelle mit der ich Aktionen auf meiner Website protokolliere und diese nach ihrem Datum sortiert ausgebe.

    Das Problem das ich habe ist, dass jeden Tag sehr viele Einträge dazu kommen und die Ladezeit deutlich gestiegen ist.

    Könnt ihr mit irgendwelche Tipps geben, wie man das Auslesen bzw Strukturieren von solchen riesigen Tabellen strukturieren kann?

    Also ich habe schon etwas Ahnung von mysql und habe die Datenbank auch in der 3. Normalform und redundanzfrei aufgebaut.

    soo.. danke für jeden Tipp!
    Last edited by BananaJo; 18-08-2009, 21:40.
Working...
X