Ergebnis 1 bis 8 von 8

Thema: mysql abfrage optimieren?

  1. #1
    Avatar von TecEye
    TecEye ist offline Eroberer
    registriert
    28-01-2012
    Beiträge
    63

    mysql abfrage optimieren?

    Hy leute, hab hier ne anfrage die über ajax ausgeführt wird, es liest die Felder aus, löscht alle sonderzeichen ü. Leerzeichen usw. und speichert wieder ab:
    PHP-Code:
    $sql mysql_query("SELECT * FROM datix_upload_".$con1." ORDER BY id ASC");
    while(
    $row mysql_fetch_array($sql))
    {
        
    $con1_code     $row['code'];
        
    $new_row    "code = '".$con1_code."'";
        for (
    $i 2$i $count_spalten_con1$i++){
            
    $spalte    mysql_field_name($spalten_con1$i);
            
    $count_entry    mysql_result(mysql_query("SELECT COUNT(*) as Num FROM datix_upload_".$con1." WHERE ".$spalte." != ''"),0);
            if(
    $count_entry >= 1){
            
    $new_row        .= ", ".$spalte." = '".trim(preg_replace("/[^a-zA-Z0-9_äöüÄÖÜ.\s\s+]/" "" $row[''.$spalte.'']))."'";
            ++
    $x;
            }
        }
        
    mysql_query("UPDATE datix_upload_".$con1." SET ".$new_row." WHERE code='".$con1_code."'") OR die(mysql_error());

    Funktioniert auch soweit, aber so ab 2-3.000 Einträgen in der DB schmiert das Skript ab und gibt "Verbindung zu mysql wurde getrennt" aus. Ist wohl überfordert mit der Bearbeitung. Gibt es ev eine sauberere Lösung?

  2. #2
    mikdoe ist gerade online Kaiser
    registriert
    01-05-2010
    Beiträge
    1.011

    AW: mysql abfrage optimieren?

    Zitat Zitat von TecEye Beitrag anzeigen
    schmiert das Skript ab und gibt "Verbindung zu mysql wurde getrennt" aus. Ist wohl überfordert mit der Bearbeitung.
    Datenbankunabhängige Überlegungen:
    Mal in den Bedingungen beim Provider geschaut, ob es eine maximale Scriptlaufzeit oder CPU Beanspruchung auf dem Server gibt?
    Muss denn diese "Bereinigung" jedes mal durchgeführt werden?
    Kann man die zu bearbeitende Datenmenge nicht in logisch sinnvolle kleinere "Happen" aufteilen und/oder ein Flag für bereits bearbeitete Tabellenteile setzen?

  3. #3
    Avatar von TecEye
    TecEye ist offline Eroberer
    registriert
    28-01-2012
    Beiträge
    63

    AW: mysql abfrage optimieren?

    wo kann ich diese Bedingungen nachlesen?

    Wie meinst du in Happen? Es ist ein Programm für mich, wo ich Adressdaten reinladen kann, sind immer so zwischen 2-15.000er CSVs, die stehn dann zur weiteren aufbereitung zur Verfügung, aber so wie es aussieht packt der Server diese Datenmenge nicht. Ich glaube ev liegts am Skript dass zu aufgebläht ist, da gibts doch bestimmt bessere Wege oder? Oder wie mach ich das in Happen?

  4. #4
    mikdoe ist gerade online Kaiser
    registriert
    01-05-2010
    Beiträge
    1.011

    AW: mysql abfrage optimieren?

    Warum bereinigst du die Daten nicht gleich beim Laden aus der CSV und speicherst in der DB nur das bereinigte Ergebnis?
    Mit Happen meine ich die Portionierung der Datenmenge, eben auf ein geringeres Maß pro Durchlauf begrenzen, damit der Serverkill nicht zuschlägt.
    Wo du die Providerbedingungen findest weiß ich nicht. Schau mal im Vertrag und den Details dazu.

  5. #5
    Avatar von TecEye
    TecEye ist offline Eroberer
    registriert
    28-01-2012
    Beiträge
    63

    AW: mysql abfrage optimieren?

    Nunja es gibt noch viel mehr prüfungen die davor und danach ausgeführt werden, außerdem will ich die bearbeitung und die einzelnen schritte visualisieren. Hast du ne Idee wie ich genau die sache portioniere?

  6. #6
    mikdoe ist gerade online Kaiser
    registriert
    01-05-2010
    Beiträge
    1.011

    AW: mysql abfrage optimieren?

    Zitat Zitat von TecEye Beitrag anzeigen
    Hast du ne Idee wie ich genau die sache portioniere?
    Ja, weniger einlesen.

  7. #7
    Avatar von Albu
    Albu ist offline Super Moderator
    registriert
    04-07-2001
    Beiträge
    13.504

    AW: mysql abfrage optimieren?

    Zitat Zitat von TecEye Beitrag anzeigen
    Nunja es gibt noch viel mehr prüfungen die davor und danach ausgeführt werden, außerdem will ich die bearbeitung und die einzelnen schritte visualisieren. Hast du ne Idee wie ich genau die sache portioniere?
    Also ich weiß ja nicht, was das für aufwändige Prüfungen sind, aber ich würde das als Shell-Skript(e) verfassen, welche die CSV Dateien _vor_ dem Import in die Datenbank entsprechend aufbereiten (grep, awk, sed, cut, usw. sind Deine Freunde und die gibt es auch für Windows).
    Wenn es Felder gibt, die umgerechnet werden müssen, und welche man leichter mit SQL (direktes SQL auf der Datenbank, nix PHP), sprich ein einziger SQL Befehl für ein oder mehrere gegebene Datenfelder, dann nutzt man natürlich die Datenbank. Das passiert aber erst _nachdem_ die Vorbereitung per Shell-Skript(e) abgeschlossen ist.

    Eine Verarbeitung mit PHP sollte nur in äußersten Notfällen eingesetzt werden. Deiner ist kein Notfall. Zwei geschachtelte Schleifen mit zwei SQL-Statements in der Schleife, eines davon in der innersten und einer SQL-Abfrage aussenrum, ist bei der Datenmenge, die Du planst tödlich (was Du ja auch schon beobachtet hast - Stichwort: max_execution_time).
    1. Get people to play Space Taxi
    2. Sell real estates on neptun
    3. Profit!

    IE is not a browser, it is a scream.


    Outside of a dog, a book is man's best friend. Inside of a dog, it's too dark to read.

  8. #8
    Avatar von ein schlauer
    ein schlauer ist offline Lounge-Member
    registriert
    18-08-2004
    Ort
    Mainz
    Beiträge
    12.803

    AW: mysql abfrage optimieren?

    Das Skript sieht für mich so aus, als ob der Zeichensatz konvertiert werden soll. Kann das mySQL nicht mit Bordmitteln?

Ähnliche Themen

  1. mySQL DB-Abfrage
    Von lonely_hawk im Forum Serverseitige Programmierung
    Antworten: 23
    Letzter Beitrag: 06-02-2009, 15:27
  2. [MySql] Abfrage
    Von slosd im Forum Serverseitige Programmierung
    Antworten: 4
    Letzter Beitrag: 23-11-2007, 21:32
  3. MySQL - Abfrage updaten!
    Von php-fan im Forum JavaScript
    Antworten: 28
    Letzter Beitrag: 07-11-2007, 12:17
  4. mysql abfrage
    Von sanchez im Forum Serverseitige Programmierung
    Antworten: 5
    Letzter Beitrag: 16-10-2006, 11:48
  5. [MySQL/PHP] Abfrage
    Von kasimir83 im Forum Serverseitige Programmierung
    Antworten: 7
    Letzter Beitrag: 01-07-2003, 17:07

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •