Leeren von Tabellen und neu Indexieren

Armin Bartsch, Freitag, 30. Juli 2010

Aufgeblähte Datenbanken leeeren und neu cachen/indexieren

Mit einiger Zeit wird der Speicherbedarf der Datenbank für TYPO3 immer größer. Es gibt einige Tabellen die zunehmend Datensätze aufnehmen und die nicht wieder automatisch reduziert bzw. geleert werden. Besonders wenn man die indexed_search nutzt, ist ein ständiges (überflüssiges) wachsen einiger Tabellen zu beobachten worunter gleichzeitig die Perfomance der Suche beeinflusst wird. Aber auch sinvolle Tabellen wie z.b. die sys_log können gewaltige Größen annehmen wenn diese nicht regelmäßig geleert werden.

Zwar kann man über das Install-Tool eine Datenbankbereinigung durchführen, es werden aber nicht in meinen Augen notwendigen Tabellen erfasst. Aus diesem Grund lasse ich regelmäßig per CronJob ein kleines Shell-Script aufrufen das einige Tabellen leert und anschließend eine Indexierung der Website durchführt in dem alle öffentlichen Seiten aufgerufen werden.

#!/bin/bash MYSQL_DATABASE="db4545441" MYSQL_USER="db4545441" MYSQL_PASSWORD="445hjg" MYSQL_HOST="mysql5.domainl.net" mysql_connect="mysql -h $MYSQL_HOST -u $MYSQL_USER -p$MYSQL_PASSWORD --database $MYSQL_DATABASE" $mysql_connect -e "TRUNCATE TABLE sys_log" $mysql_connect -e "TRUNCATE TABLE sys_history" $mysql_connect -e "TRUNCATE TABLE index_fulltext" $mysql_connect -e "TRUNCATE TABLE index_grlist" $mysql_connect -e "TRUNCATE TABLE index_phash" $mysql_connect -e "TRUNCATE TABLE index_rel" $mysql_connect -e "TRUNCATE TABLE index_section" $mysql_connect -e "TRUNCATE TABLE index_stat_search" $mysql_connect -e "TRUNCATE TABLE index_stat_word" $mysql_connect -e "TRUNCATE TABLE index_words" $mysql_connect -e "TRUNCATE TABLE cache_pages" $mysql_connect -e "TRUNCATE TABLE cache_hash" $mysql_connect -e "TRUNCATE TABLE cache_imagesizes" $mysql_connect -e "TRUNCATE TABLE cache_pagesection" $mysql_connect -e "TRUNCATE TABLE cache_treelist" $mysql_connect -e "TRUNCATE TABLE cache_typo3temp_log" $mysql_connect -e "TRUNCATE TABLE cache_extensions" $mysql_connect -e "TRUNCATE TABLE tx_realurl_errorlog" $mysql_connect -e "TRUNCATE TABLE be_sessions" $mysql_connect -e "TRUNCATE TABLE fe_sessions" $mysql_connect -e "TRUNCATE TABLE fe_session_data" wget -r -l5 -L -o crawler.log -nd --spider http://domain.de
  1. #!/bin/bash
  2. MYSQL_DATABASE="db4545441"
  3. MYSQL_USER="db4545441"
  4. MYSQL_PASSWORD="445hjg"
  5. MYSQL_HOST="mysql5.domainl.net"
  6.  
  7. mysql_connect="mysql -h $MYSQL_HOST -u $MYSQL_USER -p$MYSQL_PASSWORD --database $MYSQL_DATABASE"
  8. $mysql_connect -e "TRUNCATE TABLE sys_log"
  9. $mysql_connect -e "TRUNCATE TABLE sys_history"
  10.  
  11. $mysql_connect -e "TRUNCATE TABLE index_fulltext"
  12. $mysql_connect -e "TRUNCATE TABLE index_grlist"
  13. $mysql_connect -e "TRUNCATE TABLE index_phash"
  14. $mysql_connect -e "TRUNCATE TABLE index_rel"
  15. $mysql_connect -e "TRUNCATE TABLE index_section"
  16. $mysql_connect -e "TRUNCATE TABLE index_stat_search"
  17. $mysql_connect -e "TRUNCATE TABLE index_stat_word"
  18. $mysql_connect -e "TRUNCATE TABLE index_words"
  19.  
  20. $mysql_connect -e "TRUNCATE TABLE cache_pages"
  21. $mysql_connect -e "TRUNCATE TABLE cache_hash"
  22. $mysql_connect -e "TRUNCATE TABLE cache_imagesizes"
  23. $mysql_connect -e "TRUNCATE TABLE cache_pagesection"
  24. $mysql_connect -e "TRUNCATE TABLE cache_treelist"
  25. $mysql_connect -e "TRUNCATE TABLE cache_typo3temp_log"
  26. $mysql_connect -e "TRUNCATE TABLE cache_extensions"
  27.  
  28. $mysql_connect -e "TRUNCATE TABLE tx_realurl_errorlog"
  29.  
  30. $mysql_connect -e "TRUNCATE TABLE be_sessions"
  31. $mysql_connect -e "TRUNCATE TABLE fe_sessions"
  32. $mysql_connect -e "TRUNCATE TABLE fe_session_data"
  33.  
  34. wget -r -l5 -L -o crawler.log -nd --spider  http://domain.de
  35.  
  36.  

Das Script kann nach belieben erweitert werden, so das z.B auch als gelöscht gekennzeichnete Datensätze entfernt werden.

Alternativ kann das Crawlen auch über cli_dispatch.phpsh oder über zusätzliche Extensionen gelöst werden.

Entwicklungsumgebung

TYPO Version:
4.3.1

Kommentare

Ins Gästebuch eintragen
  • Ich hoffe, dass das nicht das richtige Passwort deiner MySQL-Datenbank ist - sonst wird es wohl Zeit, das zu ändern :)
    von Stephan am Dienstag, 10-08-10 14:38, ###GUESTBOOK_HOMEPAGE###
  • Ne, sind nicht die richtigen Verbindungsdaten zur meiner Datenbank. Aber danke für den Hinweis; man weiß ja nie.
    von Armin am Donnerstag, 12-08-10 10:26, ###GUESTBOOK_HOMEPAGE###

MERKLISTE

Login

Anmelden

Sponsored by:

ideenwerft webhosting

Wunschzettel