Antworten auf deine Fragen:
Neues Thema erstellen

mysql tabellen durchsuchen

fakerer

Aktives Mitglied

Hallo,
ich würde gerne allte Tabellen und Spalten in einer mysql Datenbank durchsuchen.

Da ich kein Mysql statement gefunden haben womit das klappt dachte ich versuch ich es mit php und mysql.
Problem ist nun das die maximale ausführungszeit überschritten wird.

Wie könnte man das ganze schrittweise machen?
Mein jetziger Versuch
Code:
$tables = $this->_db_vtc->listtables();
        foreach ($tables as $table) {
            $columns = $this->_db_vtc->fetchRow("select * from $table");
            if ($columns) {
                foreach ($columns as $column => $value) {
                    $sql = "select * from $table where $column Like '$gesucht'";
                    $rows = $this->_db_vtc->fetchAll($sql);
                    if ($rows) {
                        echo '<br/>'.$table.' -> ';var_dump($rows);
                    }  
                }
            }
        }

ps: ausfürhungszeit zu erhöhen ist keine option :)
 

Duddle

Posting-Frequenz: 14µHz

AW: mysql tabellen durchsuchen

Naja, im Moment machst du AnzahlTabellen * DurchschnittlicheAnzahlSpaltenProTabelle -viele Anfragen. Du könntest die Anzahl der Anfragen reduzieren, indem du alle Spalten mit implode() zu einer langen Anfrage zusammenführst.

Bspw.
Code:
SELECT * from tab1 WHERE col1 LIKE 'foobar';
SELECT * from tab1 WHERE col2 LIKE 'foobar';
SELECT * from tab1 WHERE col3 LIKE 'foobar';
könnte dann so aussehen
Code:
SELECT * from tab1 WHERE col1 LIKE 'foobar' OR col2 LIKE 'foobar' OR col3 LIKE 'foobar';
bzw. alternativ
Code:
SELECT * from tab1 WHERE MATCH (col1,col2,col3) AGAINST ('foobar');
Das verringert offensichtlich die Anzahl der Anfragen, gibt dem DBMS aber auch Chancen zur Optimierung.

Ansonsten könntest du die Datenbanken auch und , falls das für deinen Anwendungsfall ausreicht.

Duddle
 

fakerer

Aktives Mitglied

AW: mysql tabellen durchsuchen

vielen Dank für die schnelle Antowrt, an dumpen hab ich auch schon gedacht.
Aber das mit dem implode war ne super Idee.

In dem Zusammenhang inst mir auch Doctrine oder Probel in den Sinn gekommen.
Die Frage ist, da ich mich damit noch nicht beschäftigt habe, hätten diese "sprachen/abstraktionen" die Abfrage so weit optimiert?
Oder sind die nur da um zum beispiel einfachen umstieg von mysql auf mssql oder so?
oder eben nur um sprechende Abfragen zu schreiben?
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.565
Beiträge
1.538.067
Mitglieder
67.488
Neuestes Mitglied
Andrew56524
Oben