Google SiteMap erstellen

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

  • Google SiteMap erstellen

    Hallo zusammen,

    ich lasse mir aus meiner DB eine Sitemal.xml erstellen.
    Dazu habe ich mir folgendes kleine Script gebastelt:
    PHP-Code:
    $sql "SELECT `id` FROM `adressen`";
      
    $query mysql_query($sql$db_connect) or die("<b>".$sql."</b><br>".mysql_error());
       while (
    $row mysql_fetch_assoc($query)) {  
    $adressen =" <url>
     <loc>[url]http://www.qyx.de/detail_adresse[/url]"
    .$row['id'].".html</loc>
     <lastmod>"
    .date("Y-m-d")."</lastmod>
     <changefreq>daily</changefreq>
     <priority>0.5</priority>
     </url>"
    ;

     
    $ah $ah $adressen;
      } 
    Funktioniert auch problemlos -> Nur es dauert sehr lange bis die ganze DB bzw. die Files fertig geschrieben werden.

    Ich gehe mal davon aus das an meinen CodingKünsten lieg, die nicht immer ganz so optimal sind.

    Ist der Code so OK oder könnte man ihn wesentlich verbessern/beschleunigen? Denn ich glaube nicht das dass Anhängen des Strings ($ah) die Optimale Lösung ist.
    Es dreht sich hier um ca. 50.000 DB abfragen.

    Cu Susi
    PHP 8.0, MariaDB 10.5 auf U20.04

  • #2
    Eine derartige Struktur bringt zwei Vorteile:
    PHP-Code:
    $fp fopen("sitemap.xml");
    $result mysql_unbuffered_query("...");
    if (
    $result) {
      while (
    $row fetch_assoc($result)) {
        
    fwrite($fpbastel_string($row));
      }
    }
    fclose($fp); 
    1. Die kompletten Daten vom DB-Server werden nicht in den Ram geladen (mysql_unbufferd_query)
    2. Die komplette Datei wird nicht zuerst im Ram gebaut, sondern es wird direkt in die Datei geschrieben.
    Sollte dann etwas schneller gehen.


    Wobei ich jetzt anzweifle, ob der Sinn einer Sitemap ist da 50.000 Datensätze rein zu exportieren, aber egal~
    Zuletzt geändert von ghostgambler; 26.10.2008, 22:24.

    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
    Wie man Fragen richtig stellt

    Kommentar


    • #3
      Muchas thx,

      ich habe das alte Script vorher noch mal durchlaufen lassen.
      Es hat ca 5 Minuten gedauert. Hängt allerdings schwer von der Tagesform des V-Servers ab.

      Durch sofortiges ungepuffertes schreiben in die Datei, rennt das Script in einigen wenigen Sekunden durch.

      Dem "fopen" habe ich allerdings noch ein "W" für Write spendiert.

      Ich schreibe die 50.000 Sites nicht in EINE Datei sondern in mehrere, je nach Kategorie.

      Wo sollte Deiner Meinung nach die UnSinnigkeit darin liegen?
      Google frisst es und die GoogleResultz geben mir recht.

      Cu susi
      PHP 8.0, MariaDB 10.5 auf U20.04

      Kommentar


      • #4
        Original geschrieben von SusiSorglos
        Wo sollte Deiner Meinung nach die UnSinnigkeit darin liegen?
        Google frisst es und die GoogleResultz geben mir recht.
        Wenn ich 3/4tel meiner Datenbank für gute Suchergebnisse jeden Tag neu in xml-Dateien exportieren muss finde ich das halt wenig sinnig...
        Aber von SEO hab ich noch nie was gehalten, demnach bin ich da vielleicht auch die falsche Person, wenn man positive Argumente sucht
        mMn sollte es Google schaffen aus einer XHTML1.0/1-Website auch ohne zusätzlichen Aufwand meinerseits einwandfreies und treffendes Suchmaterial heraus zu kristallisieren. Und ich glaub das können die auch ^^,

        Übrigens kann man bei den Google Sitemaps auch nur inkrementelle Änderungen angeben. Das bietet sich vielleicht eher an, als jeden Tag alles raus zu schreiben? (Sofern da deine Programmierkenntnisse für reichen... ist natürlich etwas aufwändiger)

        Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

        bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
        Wie man Fragen richtig stellt

        Kommentar

        Lädt...
        X