mysql: OPTIMIZE TABLE
Kutti
- datenbank
Mal ne Frage:
Ich habe recht komplette Tabellen mit binären Spaltentypen. OPTIMIZE dauert deshalb teilweise mehrere Minuten.
Mittlerweile gibt es jedoch kaum noch Sekunden, in denen kein HTTP Request Daten aus der Datenbank benötigt.
Wärend OPTIMIZE ist jedoch kein Zugriff auf mySQL möglich.
Zu meiner Frage:
Ich würde gern entweder eine Meldung "Bitte warten wärend die Datenbank gewartet wird" ausgeben, oder eben OPTIMIZE irgendwie einschränken dass zeitgleich Requests möglich sind.
Weiss jemand ob es von mySQL so eine Statusabfrage gibt die ich dann im Script verarbeiten kann bzw. anhand derer ich meinen Besuchern eine Meldung generieren kann.
Hallo,
Weiss jemand ob es von mySQL so eine Statusabfrage gibt die ich dann im Script verarbeiten kann bzw. anhand derer ich meinen Besuchern eine Meldung generieren kann.
Geht das nicht mit die()?
Also ungefähr so:
mysql_(p)connect(...) or die('Konnte keine Verbindung zur Datenbank herstellen. Versuchen Sie es zu einem späteren Zeitpunkt erneut.');
Ich würde aber einen Cronjob benutzen und den 1 mal täglich (am besten Nachts zu einer Zeit mit wenig zugriffen) die Tabelle optimieren lassen.
Grüße, Matze
Eine Abfrage an die Datenbank kannst du prinzipiell mittels SHOW STATUS starten. Allerdings würde ich dir raten irgendwo in deinem Skript eine Schnittstelle einzubauen in der du bestimmte Tabellen vorübergehend sperren kannst. Dann brauchst du nicht ständig anfragen an deine Datenbank starten.
Wenn du mit LOCK TABLE die Tabelle sperrst wird ein Update-Versuch aber auf jeden Fall fehlschlagen.