Tabellen zählen

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

  • Tabellen zählen

    Hallöchen.

    Ich möchte gerne die Anzahl der Tabellen in einer Datenbank auslesen und ausgeben lassen. Wie mache ich das am besten, bzw. wie ist es am einfachsten?

    Ich hatte daran gedacht, das ein "SHOW tables" (mySQL) ausgeführt wird, der inhalt in ein Array eingelesen wird und dann ein array-count gemacht wird.


    Nebenbei. Weiß jemand, wie man Tabellen in MySQL kopieren kann?


    MfG

    Tiger_XT

  • #2
    Dann mach es so. Lösung ist doch ideal.

    kopieren:
    einfach ne neue Tabelle anlegen und dann ein
    INSERT INTO neueTabelle SELECT * FROM alteTabelle

    Kommentar


    • #3
      Danke erstmal für die Antwort.

      Nun nochmal zum tabellen kopieren. Also so, wie ich mir das Vorgestellt habe funktioniert das zwar, ist allerdings sehr Serverlastig und bei ein paar Millionen Einträge in der Datenbank ist das ganze auch etwas langsam.

      Nach deinem und meinem System wird jeder Eintrag einzelnd abgehandelt, das dauert einfach zu lange. Ich habe mir nen Script geschrieben, dass das ganze mal so umschaufelt. Also da wurden 500 Tabellen und gute 1 000 000 Einträge umgeschaufelt. Das ganze hat jetzt schon gute 10 Minuten gedauert. Nun kommt das schlimme. Wenn es nur 1000 oder 10000 Tabellen wären, wärs ja ok, aber es sind 140 000 Tabellen, und insgesamt gute 10 - 20 Millionen einträge.

      Deswegen muss die Tabelle auf einen Schlag kopiert werden. Das ganze muss schnell und efizient über die Bühne laufen. Weiß nur nicht wie der Befehl heißt ne ganze Tabelle zu kopieren.

      Kommentar


      • #4
        Also bei sowas würde ich dann schon fast raten mit nem Shell-Script die Dateien für die Tabellen zu kopieren (bei myISAM Tabellen sinds ja immer 3 Stück) Das ist die schnellste Lösung, die mir gerade dazu einfällt

        Kommentar


        • #5
          Ja, hatte ich auch schon dran gedacht, jedoch müssen nebenbei dann auch noch verschiedene IDs für die änderungen in andere Tabellen geschrieben werde -.-

          Kommentar


          • #6
            jedoch müssen nebenbei dann auch noch verschiedene IDs für die änderungen in andere Tabellen geschrieben werde
            also doch kein "kopieren". wobei die änderungen ja auch über die shell zu machen sein sollten.

            Kommentar


            • #7
              Re: Tabellen zählen

              Original geschrieben von Tiger_XT
              Ich hatte daran gedacht, das ein "SHOW tables" (mySQL) ausgeführt wird, der inhalt in ein Array eingelesen wird und dann ein array-count gemacht wird.
              Ich würde die Query fahren und danach einfach ein mysql_num_rows drauf anwenden. Erst die Daten in ein Array zu packen halte ich für Overhead
              Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
              var_dump(), print_r(), debug_backtrace und echo.
              Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
              Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
              Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

              Kommentar


              • #8
                Wenn Du Dir die CREATE TABLE Spezifikationen mal genauer durchliest, dann fällt Dir sicherlich auch ein Schnellerer Weg ein eine Tabelle zu kopieren ... (ich sag' nur SELECT) ...

                http://dev.mysql.com/doc/mysql/en/create-table.html
                carpe noctem

                [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
                [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

                Kommentar


                • #9
                  Danke für eure Antworten.

                  Habe das ganze jetzt anders geregelt. Habe nen Shellscript geschrieben, dass nen mysqldump macht und die bestimmten IDs die zusätzlich eingetragen werden müssen im dump ersetzt, bzw. hinzufügt und das ganze dann an mysql sendet und so die datenbanken füllt.

                  War schon ein bisschen heavy, aber trotzdem vielen Dank

                  Kommentar

                  Lädt...
                  X