Ankündigung

Einklappen
Keine Ankündigung bisher.

Maximaler Content für ein Array?

Einklappen

Neue Werbung 2019

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

  • Maximaler Content für ein Array?

    Moinz.

    Weiß zufällig jemand, wie viel Content man maximal in ein Array packen sollte?
    Ich hab n SQL-Query, der mir rund 3 Millionen Datensätze zurück gibt. Die muss ich in ein Array packen, weil damit noch mehr passieren soll.

    Jetzt kann man natürlich alles hintereinanderweg ins Array packen aber ich bin mir nicht sicher, ob es da Grenzen gibt?

    Persönlich wäre ich dafür, dass man z.B. nach jeder Million ein neues Array nimmt. Allerdings haperts da ein wenig mit der Syntax bei mir, um es dynamisch für 1, 3, 5 oder 10 Millionen zu machen.

    Hat da jemand n Hinweis für mich?

    -bedank-
    TZP

  • #2
    Wenn der Speicher voll ist, ist er voll. Da bringt es auch nichts, die Elemente auf mehrere Arrays aufzuteilen. Es sei denn natürlich, du löschst das Array, bevor du das 2. erzeugst, um Speicher freizugeben.

    Kommentar


    • #3
      Anmerkung: Falls du Zugriff hast kannst du in der php.ini den Speicher hochsetzen ...

      Kommentar


      • #4
        Was möchtest du mit den Daten machen? Versuch so viel wie möglich über die DB zu machen, die ist 10-100x schneller.

        Kommentar


        • #5
          Kurz gesagt will ich 3 Mio Einträge aus DB1 von Server 1 mit 3 Mio Einträge aus DB2 von Server 2 vergleichen.

          Von DB1 kriege ich nur ne ID und die soll dann mit den Ergebnissen aus DB2 gegen gecheckt werden. Bei der DB2 ist die gesamte Abfrage etwas größer, da sie noch ein Join beinhaltet und das Ergebnis "Name", "Vorname" usw enthält.

          Auf die PHP.ini hab ich keinen Zugriff....nicht mein System. Aber ich kann mich schlau machen. Immerhin gut zu wissen.

          Kommentar


          • #6
            dann würd ich dir vorschlagen, das ganze mit Limits zu stückeln, falls die Daten im Grunde dieselben sind ....pro Durchgang dann 10000 Datensätze oder so ....

            Wenn du 3 Mio Datensätze ohne Einfluss auf die php.ini vergleichen / Bearbeiten willst, droht dir noch von anderer Seite Gefahr , als nur der reine Speicherbedarf ... die maximale Ausführungszeit für Scripte .. Bei StandardInstallation 30 Sekunden, von vielen Hostern aber weiter herabgesetzt - wenn dein Script zu lange braucht, wird sang und klanglos abgebrochen

            Kommentar


            • #7
              und warum machst du es nicht mit LIMIT
              z.B.
              http://php.about.com/od/mysqlcommands/g/Limit_sql.htm

              @eagle275 war schneller

              Kommentar


              • #8
                Wenn du alle IDs von Server 1 hast, kannst du sie stückchenweise in eine Hilfstabelle in DB2 eintragen. Den anschließenden Vergleich kannst du dann ausschließlich über DB2 machen, sollte - falls es nur ein ID-Vergleich ist - sehr schnell gehen.

                Kommentar


                • #9
                  Liegen beide Datenbanken im selben Kontext? Dann kannst du es doch direkt mit SQL machen.

                  Schreib doch mal, was Du genau machen willst, dann kann man dir vielleicht genaueres raten

                  Kommentar


                  • #10
                    Zitat von TZP Beitrag anzeigen
                    Ich hab n SQL-Query, der mir rund 3 Millionen Datensätze zurück gibt.
                    Also IMHO liegt schon da der Fehler im Konzept ...

                    Kommentar


                    • #11
                      der mir rund 3 Millionen Datensätze
                      3 Millionen?! Da hast Du bei einem Zeichen pro Datensatz bereits 3MB im Speicher!

                      Kommentar


                      • #12
                        Zitat von ChrisB Beitrag anzeigen
                        Also IMHO liegt schon da der Fehler im Konzept ...
                        Ich darf mich dazu nicht äußern. ^^
                        Aber, sehr schön für mich, ist die aktuelle Aussage es einfach brachial zu machen. Der Speicher ist vorhanden...mja, ok.

                        Kommentar


                        • #13
                          es einfach brachial zu machen
                          Kann ich aus diesem Thread nicht herauslesen. Alle raten davon ab.

                          Kommentar


                          • #14
                            Zitat von TZP Beitrag anzeigen
                            Ich darf mich dazu nicht äußern. ^^
                            Aber, sehr schön für mich, ist die aktuelle Aussage es einfach brachial zu machen. Der Speicher ist vorhanden...mja, ok.
                            Hilft alles nix - programmier es für den worst case (mehr Daten, als Speicher zur Verfügung steht): Daten in Häpchen aufteilen und diese Häpchen verarbeiten.

                            Kommentar


                            • #15
                              was nützt dir der Speicher im Rechner, wenn PHP davon nur 256 MB oder weniger nutzen darf .....

                              oder 128 mb - und du sagst ja, dass du die php.ini nicht verändern darfst

                              Kommentar

                              Lädt...
                              X