1 / 18

SQL Query Result Caching Oder wie man häufig gestellte Datenbankabfragen performanter bekommt

eine Semesterarbeit von Sebastian Galenski (2. Semester – WWI 00 B). SQL Query Result Caching Oder wie man häufig gestellte Datenbankabfragen performanter bekommt. >> Gliederung <<. Queries – Was ist im folgenden mit „Queries“ gemeint ? Caching – Warum werden Queries gecached ? Techniken

Download Presentation

SQL Query Result Caching Oder wie man häufig gestellte Datenbankabfragen performanter bekommt

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. eine Semesterarbeit von Sebastian Galenski (2. Semester – WWI 00 B) SQL Query Result CachingOder wie man häufig gestellte Datenbankabfragen performanter bekommt

  2. >> Gliederung << • Queries – Was ist im folgenden mit „Queries“ gemeint ? • Caching – Warum werden Queries gecached ? • Techniken • Caching auf dem „local filesystem“ • Vergleich – „mit / ohne“ dem hier vorgestellten Caching-Verfahren • Beispiel – aus der Praxis • Fazit – Schluss

  3. 1. Queries SQL Query Result Caching Oder wie man häufig gestellte Datenbankabfragen performanter bekommt Was ist im folgenden mit „Queries“ gemeint ? Sebastian Galenski - WWI 00 B

  4. >> 1. Queries << • Ergebnismenge einer Datenbankabfrage • Also die Ergebnistabelle, einer SQL-Abfrage • aufgebaut wie eine normale Tabelle • Entitätsmenge – also eine Ansammlung von Entitäten und deren Attribute

  5. 2. Caching SQL Query Result Caching Oder wie man häufig gestellte Datenbankabfragen performanter bekommt Warum werden Queries gecached ? Sebastian Galenski - WWI 00 B

  6. >> 2. Caching << • Bei hoch dynamischen Web-Seiten -> bis zu 15 SQL-Abfragen • 3 Gründe um sich ein Caching der Queries zu überlegen: • Der Datenbank Server ist entfernt • Hoher Traffic • Abfragen sind wiederkehrend, sie ändern sich • zu bestimmten Zeiten • bei einer Interaktion mit dem Redakteur / Admin • Diese kosten hauptsächlich Zeit • Performance-Gewinn bei der Generierung wird angestrebt

  7. 3. Techniken SQL Query Result Caching Oder wie man häufig gestellte Datenbankabfragen performanter bekommt Sebastian Galenski - WWI 00 B

  8. >> 3. Techniken << • Es gibt zwei generelle Techniken: • man kann sich auf den Datenbank-Server verlassen und auf dessen Caching hoffen • man programmiert selbst ein Caching mit Hilfe des lokalen Filesystems

  9. 4. Caching auf dem „local filesystem“ SQL Query Result Caching Oder wie man häufig gestellte Datenbankabfragen performanter bekommt Sebastian Galenski - WWI 00 B

  10. >> 4. Caching auf dem „local filesystem“ << • Die Theorie I: • Vermittler zwischen Datenbank-Server und Webanwendung • SQL-Abfrage und das Wissen über dessen Lifetime an das Cachemodul übergeben • Identifier für den entsprechenden CacheFile • Datenbankname und MD5-Prüfsumme über das SQL-Statement • Datenbank : bzo_anzeigen • Tabelle : testanzeigen • SQL-Statement : SELECT * FROM testanzeigen • Resultierender Cachefile : bzo_anzeigen_54a73ab20628171c7d650745aea5992a.cache

  11. >> 4. Caching auf dem „local filesystem“ << • Die Theorie II: • überprüft das Cachefile auf das Datum der letzten Änderung • Falls die Lifetime abgelaufen ist: • SQL-Abfrage an die Datenbank • zurückkommende Ergebnisstabelle serialisieren • Falls die Lifetime noch gültig ist: • den Inhalt des Cachefiles deserializieren (wandelt den Fliesstext wieder in brauchbare Variablen um)

  12. >> 4. Caching auf dem „local filesystem“ << • Vorteile: • es spielt keine Rolle mehr, ob der DB-Server auf der gleichen Maschine oder auf einer entfernte Maschine läuft • viele Billigprovider bieten zu ihren Hostingangeboten keine Datenbank an. Kein Problem mehr, einfach die Webanwendung und den Cache dort ablegen und der Cache spielt für die Anwendung im Prinzip den Datenbank-Server

  13. 5. Vergleich SQL Query Result Caching Oder wie man häufig gestellte Datenbankabfragen performanter bekommt „mit / ohne“ dem hier vorgestellten Caching-Verfahren Sebastian Galenski - WWI 00 B

  14. >> 5. Vergleich <<

  15. 6. Beispiel SQL Query Result Caching Oder wie man häufig gestellte Datenbankabfragen performanter bekommt aus der Praxis http://www.badische-zeitung.de Sebastian Galenski - WWI 00 B

  16. >> 6. Beispiel << • BZ-Online • WebServer auf 3 NetBSD Maschinen im Cluster • PHP • MySQL entfernt aber im Cluster ohne das Caching: 4.5042 sec mit dem Caching: 0.3081 sec

  17. 7. Fazit – Schluss SQL Query Result Caching Oder wie man häufig gestellte Datenbankabfragen performanter bekommt Sebastian Galenski - WWI 00 B

  18. >> 7. Fazit – Schluss << Vielen Dank für Ihre Aufmerksamkeit Infos, Download der Cache-Klasse für PHP/MySQL und diese Präsentation finden Sie unter http://qrc.galenski.de

More Related