Mailinglisten-Archive |
Hallo René, René Thiel schrieb: > > Hallo, > > ich brauche aus 1.000.000 Datensätzen folgendes: > > 1. Verbindungsaufbau (Call X) > 2. Verbindungsdetails (Call X) > 3. Verbindungsabbau (Call X) > > Zwischen Verbindungsaufbau, Verbindungsdetails und > Verbindungsabbau können weitere Verbindungen auf- > und abgebaut werden: > > aufbau(Call 1) > details(Call 1) > aufbau(Call 2) > aufbau(Call 3) > details(Call 3) > details(Call 2) > abbau(Call 3) > abbau(Call 1) > abbau(Call 2) > > Ich brauche also eigentlich für ein "Free" das vorangegangene > "Release" und zu dem wieder das vorangegangene "Alloc", > WENN NICHT nach dem "Alloc" noch ein "Free" zu finden ist. > > Ich habe das so versucht: > > SELECT * FROM `Tabelle` > WHERE `Typ` = 'Free' > ORDER BY `ID` > > SELECT * FROM `Tabelle` > WHERE `Call` = '".$Free_row['Call']."' > AND `Typ` = 'Release' > AND `ID` < '".$Free_row['ID']."' > ORDER BY `ID` DESC > LIMIT 1 > > SELECT * > FROM `Tabelle` > WHERE `Call` = '".$Free_row['Call']."' > AND `Typ` = 'Alloc' > AND `ID` < '".$Release_row['ID']."' > ORDER BY `ID` DESC > LIMIT 1 " > > Das Ganze gab mit Abbruch bei 500 gefundenen > Verbindungen: 3,734 sec - eindeutig zu viel. > > > Hat jemand einen Tip, ob und wie ich das schneller bekomme? Ich habe die von dir angeregte Diskussion zum Auswerten von Logfiles mitverfolgt und bin ganz ehrlich davon nicht sehr begeistert. Bitte verstehe mich nicht falsch und nimm es nicht zu sehr persönlich, aber vielleicht solltest du erst einmal kleinere Brötchen backen, wenn sich dein Wissen doch so arg beschränkt... Bei dem jetzigen Problem verstehe ich noch nicht warum du 3 verschiedene Querys brauchst bzw. was du damit konkret bezwecken willst!? Es sieht für mich ein wenig nach einem Versuch aus eine Transaktionsfähigkeit (siehe http://de.wikipedia.org/wiki/Transaktion_%28Informatik%29 - etwas Besseres hab ich so schnell zu der Thematik nicht gefunden) bereitzustellen, was aber alleine bei SELECT-Abfragen gar keinen Sinn ergeben würde. (Es sei denn es könnten zeitgleich Update-, Delete- oder Insert-Operationen auf den gleichen Tabellen ablaufen.) So wie ich es aber jetzt verstanden habe, fügst du einmal deine Logdaten in die Datenbank ein und arbeitest dann nur noch auf diesen. Also entweder ging es doch an mir vorüber oder es fehlt allgemein noch ein paar Informationen über den Zweck und am besten auch der Struktur der Tabelle (Schlüssel, Indizes). Gruß, Michael
php::bar PHP Wiki - Listenarchive