Größenlimit von Strings und Arrays?

preko

Erfahrenes Mitglied
Hi,

kann mir jemand sagen wo das Größenlimit eines Strings oder Arrays ist?

Ich habe eine Textdatei, in der die verschiedensten Musikinstrumente aufgeführt sind. Es ist eine Zeile mit ca. 2600 Einträgen, die mit Kommata getrennt sind.

Nun möchte ich diese in eine MySQL Datenbank übertragen, die nur die Aufgabe hat, diese Instrumente zu speichern (also nur eine Spalte hat) bis ein Abruf kommt.

Ich möchte nun (Faulheit sei Dank) die jeweiligen Instrumente per PHP aus der .txt-Datei in die MySQL DB übertragen um nicht die ganzen Einträge von Hand eintippen zu müssen.

Kann ich nun die ganze Datei z.B. in einen String/Array einlesen und dann mittels explode() einzeln in die DB eintragen, oder erreiche/überschreite ich das Größenlimit - falls es eins gibt? :confused:


Beste Grüße,
preko
 
Zuletzt bearbeitet:
Also Größenlimits für Arrays ?:rolleyes: Keine ahnung ob es die gibt. Aber ich musste schon mal eine Datei mit über 4000 Datensätzen in eine MySQL DB eintragen, der Server hat sich zwar etwas unruhig ahngehört, aber die Sätze wurden eingetragen, auch wenn ich danach den SQL Server neu starten musste :(

Gruß Mirko
 
@jenno:

ausprobieren werde ich es auf jeden Fall. Mir ging es nur darum mein Wissen aufzubauen mit der Frage. :)

Vielleicht muß ich demnächst mal eine viel größere Textdatei/CSV-Datei verarbeiten, daher vorab mal die Frage, damit ich schon mal planen kann und die Daten eventl. in einem anderen Format anfordere.


@Mirko D:

vielen Dank für die Antwort. :)

Das Neustarten wäre nicht das Problem, da ich das ganze lokal auf dem WAMPP machen würde. Wenn die DB fertig ist, wird sie erst übertragen auf das Livesystem.


Beste Grüße,
preko
 
Zuletzt bearbeitet:
Soweit ich weiss hängt das auch mit dem Speicher zusammen, den du PHP in der ini gewährst. Hatte mal versucht ne Text-Datei mit 10tsd zeilen + einzulesen und dann brach es wegen Speicherirgendwas ab...
 
Hi preko,
das Größenlimit spielt inderekt überhaupt keine Rolle. Der Speicher von System ist meistens 256 MB und größer. Also müßtest du bei einem Durchlauf ein String mit 256 MB besitzen. Weiterhin ist fraglich ob nicht der PHP Parser bei zu großen Strings die Variablen zwischenspeichert wie Sessions. Wenn du denkst, dass auch andere User gleichzeitig das selbse Script aufrufen und dadurch die Ram MB Zahl in den Keller sinken können, ist das fatal.
Es gibt einen Prioritätsmodus, eine Art "Wer zu erst kommt mahlt zu erst!". D.h. nach jeden Scriptdurchlauf werden die temporären Variablen wieder frei geschauftelt und stehen wieder zur Verfügung.

In diesem Sinne
 
@ Ben Ben & Krypthonas:

vielen Dank für Eure Antworten.

Mir ging es tatsächlich um die faktische Antwort, ob so ein Durchlauf das System im die Knie zwingen könnte.

Nun sehe ich im Nachhinein, dass die Frage lächerlich war, da die Textdatei ca. 13 KB hat, sprich also nicht der Rede wert ist.

Aber die Antworten sind auf jeden Fall für mein Sinnverständnis sehr wertvoll - nochmals herzlichen Dank.


Beste Grüße,
preko
 
Ich sags mal so:

Trau php ruhig was zu. ne text datei zu lesen is kein problem!

Ich hab hier eine mit 1mb text! und nach 4 sekunden hat er alles mit regulären ausdrücken etc ausgelsen und! wieder ausgegeben! den ganzen array.

Ach ja du brauchst das aber auch garnich in nen array reinhaun es reicht doch, dass du jedes mal nen query absetzt, wenn du eine zeile eingelesen hast. is doch total der umweg.
 
Original geschrieben von Sicaine
... Ach ja du brauchst das aber auch garnich in nen array reinhaun es reicht doch, dass du jedes mal nen query absetzt, wenn du eine zeile eingelesen hast. is doch total der umweg.

Hintergrund ist, dass die Textdatei aus einer einzigen Zeile besteht, in der etwa 2600 Worte, durch Kommata getrennt, aufgelistet sind.


Beste Grüße,
preko
 
Zurück