Datenbank oder Flatfile

Datenbank oder Flatfile

am 15.08.2006 10:48:48 von Matthias Ribeaucourt

Hallo NG,

was ist unter Einbeziehung aller Aspekte die bessere Lösung:

Eine Tabelle mit ca. 250.000 Zeilen in einer MySQL-Datenbank abzulegen
oder als Textdatei (CSV)...?

Ziel ist die formatierte Ausgabe von jeweils mehreren Zeilen via PHP
(eventuell PERL) und HTML.

Es geht nicht nur um Performance, sondern auch darum, mit geringem
Aufwand und ohne viel Spezialwissen alles aktuell zu halten (1x pro Woche).

Danke für Eure Tips - Matthias

--

Matthias Ribeaucourt
www.kundengewinner.net

Re: Datenbank oder Flatfile

am 15.08.2006 10:58:05 von Frank Schenk

Matthias Ribeaucourt wrote:
> Hallo NG,
>=20
> was ist unter Einbeziehung aller Aspekte die bessere Lösung:
>=20
> Eine Tabelle mit ca. 250.000 Zeilen in einer MySQL-Datenbank abzulegen
> oder als Textdatei (CSV)...?

Datenbank.

Siehe: http://de.wikipedia.org/wiki/Relationale_Datenbank
Und z.B. http://www.mysql.com

Frank

Re: Datenbank oder Flatfile

am 15.08.2006 11:33:51 von Andreas Froede

Matthias Ribeaucourt wrote:
> was ist unter Einbeziehung aller Aspekte die bessere Lösung:

42

> Eine Tabelle mit ca. 250.000 Zeilen in einer MySQL-Datenbank abzulegen
> oder als Textdatei (CSV)...?
> Ziel ist die formatierte Ausgabe von jeweils mehreren Zeilen via PHP
> (eventuell PERL) und HTML.
> Es geht nicht nur um Performance, sondern auch darum, mit geringem
> Aufwand und ohne viel Spezialwissen alles aktuell zu halten (1x pro Woche).

Das heißt, 1 mal pro Woche werden die Datensätze verändert?
Sonst read-only?

Was ist mit konkurrierenden Zugriffen?
Was ist mit Konsistenzsicherung?

Wenn nur ein User ändern kann und man auch nicht sonderliche
Anforderungen bzgl. Konsistenz der Daten hat, wäre ein Flatfile
wahr. empfehlenswert. Du brauchst keine zusätzliche Software auf der
Kiste (kein DBMS), hast eine einfache Programmstruktur (Skript liest Datei,
verändert, schreibt), bist deutlich schneller.



CIAO
andreas
--
.... oben geht es um den Thron - unten geht es um Deinen Hintern ...
[Keimzeit]
Klettern in Thüringen: http://www.climb.spider-net.de
Kletterhalle in Jena: http://www.wand.spider-net.de

Re: Datenbank oder Flatfile

am 15.08.2006 13:07:56 von Matthias Ribeaucourt

Andreas Froede schrieb:

> 42

Ahh...

> Das heißt, 1 mal pro Woche werden die Datensätze verändert?
> Sonst read-only?
Genau!

> Was ist mit konkurrierenden Zugriffen?
Könnte es da beim Flatfile Probleme geben?

> Was ist mit Konsistenzsicherung?
Was bedeutes Konsistenzsicherung in diesem Zusammenhang genau?

Es soll per Cronjob wöchentlich ein aktualisiertes Flatfile erzeugt und
auf den Server gespielt werden. Zumindest, wenns nicht doch eine DB wird.

> Wenn nur ein User ändern kann und man auch nicht sonderliche
> Anforderungen bzgl. Konsistenz der Daten hat, wäre ein Flatfile
> wahr. empfehlenswert.
Das war meine Überlegung - und deswegen gefällt mir die einfachere
Lösung besser.

Sicherheit und einfaches Handling haben Priorität...
Weiterhin Flatfile?

Danke für Deine Antwort - Matthias

--

Matthias Ribeaucourt
www.kundengewinner.net

Re: Datenbank oder Flatfile

am 15.08.2006 15:14:47 von do.not.REMOVETHAT

Matthias Ribeaucourt schrieb:

> was ist unter Einbeziehung aller Aspekte die bessere Lösung

Der Entscheidende Aspekt scheint zu sein, ob Du mit Datenbanken
Erfahrung hast oder das eh lernen willst. Der "Vorteil" der
Datenbanklösung ist unter den gegebenen Umständen klein bis theoretisch.
Wenn es für Dich geistige Anstrengung bedarf, dann lass es und nimm eine
"normale Datei".

Grüße, Matthias

Re: Datenbank oder Flatfile

am 15.08.2006 16:18:19 von Matthias Ribeaucourt

Hallo Matthias,

Matthias P. Wuerfl schrieb:
> Der Entscheidende Aspekt scheint zu sein, ob Du mit Datenbanken
> Der "Vorteil" der Datenbanklösung ist unter den
> gegebenen Umständen klein bis theoretisch.

Ich habe keine Erfahrungen mit DB's, ich glaube das war schon
rauszulesen. Hatte aber schon vermutet, das der Vorteil nicht so groß
sein dürfte.
Allerdings sind die fraglichen Flatfiles so um die 15 MB groß. Ob das
ein Problem wird, wenn die mit einem PHP-script durchsucht werden?

> Wenn es für Dich geistige Anstrengung bedarf,
> dann lass es und nimm eine"normale Datei".

Es ist nicht so, daß ich geistige Anstrengung unbedingdt vermeiden
möchte. Wenn das einmal eingerichtet ist, werden sich aber andere darum
kümmern müssen. Ich glaube, daß eine einfache Lösung da mehr Vor- als
Nachteile hat.

Danke für Deine Antwort - Matthias

--

Matthias Ribeaucourt
www.kundengewinner.net

Re: Datenbank oder Flatfile

am 15.08.2006 23:21:37 von Johannes Erchen

> Ich habe keine Erfahrungen mit DB's, ich glaube das war schon rauszulesen.
> Hatte aber schon vermutet, das der Vorteil nicht so groß sein dürfte.
> Allerdings sind die fraglichen Flatfiles so um die 15 MB groß. Ob das ein
> Problem wird, wenn die mit einem PHP-script durchsucht werden?

Nimm eine Datenbank, die ist optimiert Datensätze schnell zu bringen...
Und 15MB klingt nicht so nach viel Daten, ich habe Gigabyte-Daten in ner
DB...

Re: Datenbank oder Flatfile

am 16.08.2006 09:30:55 von Andreas Froede

Matthias Ribeaucourt wrote:
> Es soll per Cronjob wöchentlich ein aktualisiertes Flatfile erzeugt und
> auf den Server gespielt werden. Zumindest, wenns nicht doch eine DB wird.

> > Was ist mit konkurrierenden Zugriffen?
> Könnte es da beim Flatfile Probleme geben?

Ja, wenn möglicherweise verschiedene Leute gleichzeitig schreiben
könnten, mußt Du Dir die entsprechenden Lock-Mechanismen (und ggf.
Transaktionsverwaltung) selbst schnitzen.
Nach Deiner Beschreibung ist das aber kein Problem.
Gleichzeitige Lesezugriffe sind kein Problem.

> > Was ist mit Konsistenzsicherung?
> Was bedeutes Konsistenzsicherung in diesem Zusammenhang genau?

Es soll gesichert werden, daß die Werte von Spalte n nur in gewissen
Bereichen liegen. Datensatz A referenziert auf Datensatz B, also
sollte auch sichergestellt sein, daß B vorhanden ist...

> Sicherheit und einfaches Handling haben Priorität...
> Weiterhin Flatfile?

Es spart eine komplette Softwareben (DBMS) mit seiner Angreifbarkeit.
Und dem Handling ist es egal, ob die Datenbank in einem Flatfile oder
einem DBMS verwaltet wird.

CIAO
andreas
--
.... oben geht es um den Thron - unten geht es um Deinen Hintern ...
[Keimzeit]
Klettern in Thüringen: http://www.climb.spider-net.de
Kletterhalle in Jena: http://www.wand.spider-net.de

Re: Datenbank oder Flatfile

am 16.08.2006 10:21:10 von do.not.REMOVETHAT

Matthias Ribeaucourt schrieb:

> Allerdings sind die fraglichen Flatfiles so um die 15 MB groß. Ob das
> ein Problem wird, wenn die mit einem PHP-script durchsucht werden?


"Problem" nicht, aber halt nicht performant.


Datenbank.

Grüße, Matthias

Re: Datenbank oder Flatfile

am 16.08.2006 11:32:35 von Andreas Froede

Matthias P. Wuerfl wrote:
> Matthias Ribeaucourt schrieb:

> > Allerdings sind die fraglichen Flatfiles so um die 15 MB groß. Ob das
> > ein Problem wird, wenn die mit einem PHP-script durchsucht werden?
> "Problem" nicht, aber halt nicht performant.

Schon klar. Das DBMS verbraucht keine Ressourcen auf der Kiste und
kann sein Files einlesen, darin suchen und Daten weitergeben ohne
Zeitverlust.
Nettes Universum in dem Du da lebst.

CIAO
andreas
--
.... oben geht es um den Thron - unten geht es um Deinen Hintern ...
[Keimzeit]
Klettern in Thüringen: http://www.climb.spider-net.de
Kletterhalle in Jena: http://www.wand.spider-net.de

Re: Datenbank oder Flatfile

am 16.08.2006 11:48:59 von Matthias Ribeaucourt

Matthias P. Wuerfl schrieb:
> Matthias Ribeaucourt schrieb:
>
>> Allerdings sind die fraglichen Flatfiles so um die 15 MB groß. Ob das
>> ein Problem wird, wenn die mit einem PHP-script durchsucht werden?
>
> "Problem" nicht, aber halt nicht performant.
>

Hallo Matthias,

kannst Du einen Geschwindigkeits Prognose wagen?
Etwa: DB vs. Flatfile = 1:4
oder
15MB Flatfile abgrasen dauert ca. 180 Sek....???

Ich weiß, das es auch auf den Server ankommt.

Danke + viele Grüße - Matthias


--

Matthias Ribeaucourt
www.kundengewinner.net

Re: Datenbank oder Flatfile

am 16.08.2006 12:04:59 von dev-null-use-reply-adress

Matthias Ribeaucourt schrieb:
> Matthias P. Wuerfl schrieb:
>> Matthias Ribeaucourt schrieb:
>>
>>> Allerdings sind die fraglichen Flatfiles so um die 15 MB groß. Ob das
>>> ein Problem wird, wenn die mit einem PHP-script durchsucht werden?
>>
>> "Problem" nicht, aber halt nicht performant.
>
> kannst Du einen Geschwindigkeits Prognose wagen?
> Etwa: DB vs. Flatfile = 1:4

Mindestens, wenn nicht noch viel mehr.

> 15MB Flatfile abgrasen dauert ca. 180 Sek....???

Keine Ahnung, aber in einer DB-Tabelle mit, wie Du sagtest, 250.000
Datensätzen etwas zu suchen, ist um Größenordnungen schneller,
passende Indexe vorausgesetzt.


Gruß
JPM

Re: Datenbank oder Flatfile

am 16.08.2006 12:08:52 von dev-null-use-reply-adress

Andreas Froede schrieb:
> Matthias P. Wuerfl wrote:
>> Matthias Ribeaucourt schrieb:
>
>> > Allerdings sind die fraglichen Flatfiles so um die 15 MB groß. Ob das
>> > ein Problem wird, wenn die mit einem PHP-script durchsucht werden?
>> "Problem" nicht, aber halt nicht performant.
>
> Schon klar. Das DBMS verbraucht keine Ressourcen auf der Kiste und
> kann sein Files einlesen, darin suchen und Daten weitergeben ohne
> Zeitverlust.

Und wo behauptete Matthias P. Wuerfl das noch gleich?

> Nettes Universum in dem Du da lebst.

Und bei Dir scheint das Logikmodul fehlerhaft zu sein. ;-)


Gruß
JPM

Re: Datenbank oder Flatfile

am 16.08.2006 12:11:54 von Niels Braczek

Andreas Froede schrieb:
> Matthias P. Wuerfl wrote:
>> Matthias Ribeaucourt schrieb:
>=20
>> > Allerdings sind die fraglichen Flatfiles so um die 15 MB groß. Ob =
das=20
>> > ein Problem wird, wenn die mit einem PHP-script durchsucht werden?
>> "Problem" nicht, aber halt nicht performant.
>=20
> Schon klar. Das DBMS verbraucht keine Ressourcen auf der Kiste und
> kann sein Files einlesen, darin suchen und Daten weitergeben ohne
> Zeitverlust.=20

Hä?
Natürlich verbraucht das DBMS Ressourcen und auch Zeit für die
Verarbeitung. Da das DBMS allerdings nicht in der Interpreter-Sprache
PHP geschrieben wurde, ist es natürlich erheblich (um einige
Größenordnungen) schneller, also wesentlich performanter.

Da ein DBMS nur die benötigten Datensätze liefert und nicht alle Zeil=
en
eines Flatfiles eingelesen werden müssen, um sie mit irgendwelchen
Kriterien zu vergleichen, werden auch erheblich weniger Ressourcen
verbraucht, wenn man ein DBMS benutzt.

> Nettes Universum in dem Du da lebst.

Darfst gerne reinkommen, hier ist Platz für alle ;-)

MfG
Niels

--=20
| http://www.kolleg.de =B7 Das Portal der Kollegs in Deutschland |
| http://www.bsds.de =B7 BSDS Braczek Software- und DatenSysteme |
| Webdesign =B7 Webhosting =B7 e-Commerce =B7 Joomla! Content Management =
|
------------------------------------------------------------ ------

Re: Datenbank oder Flatfile

am 16.08.2006 13:33:08 von Tobias Kutzler

Matthias Ribeaucourt schrieb:
> Hallo NG,
>
> was ist unter Einbeziehung aller Aspekte die bessere Lösung:
>
> Eine Tabelle mit ca. 250.000 Zeilen in einer MySQL-Datenbank abzulegen
> oder als Textdatei (CSV)...?
>
> Ziel ist die formatierte Ausgabe von jeweils mehreren Zeilen via PHP
> (eventuell PERL) und HTML.
>
> Es geht nicht nur um Performance, sondern auch darum, mit geringem
> Aufwand und ohne viel Spezialwissen alles aktuell zu halten (1x pro Woche).

Mal ein anderer Aspekt, der meiner Meinung nach wichtig ist und hier
noch nicht wirklich behandelt wurde: Es ist wesentlich einfacher die
Daten in einer Datenbank zu verwalten, als diese in einem Flat-File
(z.b. im CSV Format) zu verwalten.

Ich stelle mir bei 250000 Zeilen es schon als sehr mühsam vor, den
entsprechenden Datensatz zu suchen, der bspw. bearbeitet werden soll.
Dann kommt noch dazu, dass ja jedesmal die Datei komplett ausgetauscht
werden muss. Da werden jedesmal unnötig Daten hin und her geschaufelt,
was überhaupt keinen Sinn macht.

Ein weiteres Argument: Wenn nur ein paar Zeilen ausgelesen werden
sollen, dann macht ein Flatfile erst recht keinen Sinn! Es müsste
erstmal komplett geladen werden, um dann die anzuzeigenden Zeilen
rauszusuchen. Das geht bei einer Datenbank viel effektiver.

Also Pro Datenbank von mir.

Ciao,
Tobias

Re: Datenbank oder Flatfile

am 16.08.2006 13:33:26 von Axel Schwenke

Jens Peter Moeller wrote:
> Matthias Ribeaucourt schrieb:

>> kannst Du einen Geschwindigkeits Prognose wagen?
>> Etwa: DB vs. Flatfile = 1:4
>
> Mindestens, wenn nicht noch viel mehr.

Solange Matthias nicht Butter bei die Fische tut, kann man das nicht
genau sagen. "die formatierte Ausgabe von jeweils mehreren Zeilen" kann
alles mögliche bedeuten. Welche Zeilen? Werden die nach bestimmten
Kriterien gesucht? Ist das in einem DBMS indizierbar?

Was ist mit Änderungen? Werden nur Zeilen angehängt (pro flatfile) oder
werden auch mal Zeilen gelöscht oder geändert (pro Datenbank)?

>> 15MB Flatfile abgrasen dauert ca. 180 Sek....???
>
> Keine Ahnung, aber in einer DB-Tabelle mit, wie Du sagtest, 250.000
> Datensätzen etwas zu suchen, ist um Größenordnungen schneller,
> passende Indexe vorausgesetzt.

15MB ist *gar* *nichts*. Eine Suche mit grep sollte nicht länger als
einen zweistelligen Millisekundenzeitraum dauern. Aktuelle Hardware
vorausgesetzt. Und vielleicht nicht beim ersten Lauf, aber bei allen
weiteren, wenn besagte 15MB im Platten-Cache liegen.

Man muß ja das zeilenweise Auslesen, Splitten und Suchen nicht in PHP
codieren. Entweder startet man ein grep dafür oder implantiert eine
read-and-grep() Funktion in PHP (sofern es so etwas nicht schon gibt).

Außerdem gibts zwischen Flatfile und MySQL-Server noch einen ganzen
Zoo möglicher Lösungen. Auf PHP-Seite ist SQLite gerade ganz hip. Aber
auch (G)DBM eignet sich unter Umständen. Mit mod_perl könnte man die
15MB Daten auch in ein persistentes Hash einlesen.


XL

Re: Datenbank oder Flatfile

am 16.08.2006 13:49:56 von Josi

Tobias Kutzler schrieb:
> Mal ein anderer Aspekt, der meiner Meinung nach wichtig ist und hier
> noch nicht wirklich behandelt wurde: Es ist wesentlich einfacher die
> Daten in einer Datenbank zu verwalten, als diese in einem Flat-File
> (z.b. im CSV Format) zu verwalten.
Zuerst einmal auch ein Pro für DB (MySQL o.ä.).

Wollte nur mal noch einen Verweis auf die txt-db-api hier mit
reinschmeissen (http://www.c-worker.ch/).
Habe die mal mit Erfolg auf einem Server eingesetzt, wo zwar PHP aber
leider keinerlei DB installiert ist. Dient dort zur Steuerung eines
kleinen selbstgeschriebenen CMS.

Dort kann man auf CSV-ähnliche flatfiles per SQL zugreifen.

Aber wie schon gesagt, wenn verfügbar würde ich auf alle Fälle eine
richtige DB bevorzugen.

Re: Datenbank oder Flatfile

am 16.08.2006 14:51:14 von do.not.REMOVETHAT

Matthias Ribeaucourt schrieb:

> kannst Du einen Geschwindigkeits Prognose wagen?

Nein.

> 15MB Flatfile abgrasen dauert ca. 180 Sek....???

Um Gottes Willen! Nein, nicht so lange.

Die richtigen Zeilen auszulesen und auszugeben geht schnell. Die
richtigen Zeilen zu suchen - das dauert lange. Dafür haben DBMSse halte
einen "Index". Das kann man zwar für eine Datei auch von Hand bauen,
bedeutet aber Aufwand.

Grüße, Matthias

Re: Datenbank oder Flatfile

am 16.08.2006 14:53:45 von do.not.REMOVETHAT

Andreas Froede schrieb:

> Das DBMS verbraucht keine Ressourcen auf der Kiste und
> kann sein Files einlesen, darin suchen und Daten weitergeben ohne
> Zeitverlust.


Doch, es verbraucht Resourcen.

Das suchen geht allerdings - dank der einfachen Möglichkeit, einen Index
anzulegen - mit weniger Zeitverlust als bei einer einfachen Datei.

Grüße, Matthias

Re: Datenbank oder Flatfile

am 16.08.2006 15:49:45 von Matthias Ribeaucourt

Hallo NG,

find ich toll, wie Ihr mir helft - aber kriegt Euch bitte nicht in die
Haare deswegen!

Noch einige Details:

1. Die Daten werden in einer DB gepflegt. Diese ist nicht am Internet
und soll es auch nicht.

2. Bisher wurden Sie als CSV-File exportiert und an einen Dienstleister
gegeben, der sie seinerseits wieder in eine MySQL-DB eingegeben hat -
per Automatik. Genaueres weiß ich noch nicht. Beziehungsprobleme...

3. Es handelt sich um Datensätze, die anhand von Nummern identifiziert
werden. Wahrscheinlich laufende Nummern...
Da mir bisher eine Beispieldatei nur versprochen ist, tappe ich selbst
etwas im Dunkeln.

4. Um unabhängig zu sein, werden diese Arbeit in Zukunft Leute tun, die
zwar Experten sind, jedoch auf anderem Gebiet ;-)

Deshalb frage ich mich:

Rechtfertigt dies die *einfache* aber langsamere Lösung? (Ich meine JA)

Kann man mit PHP direkt eine bestimmte Zeile im Flatfile auslesen?
Eventuell können die laufenden Nummern ja so vergeben werden, das sie
mit der Zeilennummer korrespondieren?

Danke Euch allen - Matthias

--

Matthias Ribeaucourt
www.kundengewinner.net

Re: Datenbank oder Flatfile

am 16.08.2006 16:10:16 von Josi

Matthias Ribeaucourt schrieb:
> Hallo NG,
>
> find ich toll, wie Ihr mir helft - aber kriegt Euch bitte nicht in die
> Haare deswegen!
>
> Noch einige Details:
>
> 1. Die Daten werden in einer DB gepflegt. Diese ist nicht am Internet
> und soll es auch nicht.
>
> 2. Bisher wurden Sie als CSV-File exportiert und an einen Dienstleister
> gegeben, der sie seinerseits wieder in eine MySQL-DB eingegeben hat -
> per Automatik. Genaueres weiß ich noch nicht. Beziehungsprobleme...
>
> 3. Es handelt sich um Datensätze, die anhand von Nummern identifiziert
> werden. Wahrscheinlich laufende Nummern...
> Da mir bisher eine Beispieldatei nur versprochen ist, tappe ich selbst
> etwas im Dunkeln.
>
> 4. Um unabhängig zu sein, werden diese Arbeit in Zukunft Leute tun, die
> zwar Experten sind, jedoch auf anderem Gebiet ;-)
>
> Deshalb frage ich mich:
>
> Rechtfertigt dies die *einfache* aber langsamere Lösung? (Ich meine JA)
>
> Kann man mit PHP direkt eine bestimmte Zeile im Flatfile auslesen?
> Eventuell können die laufenden Nummern ja so vergeben werden, das sie
> mit der Zeilennummer korrespondieren?
>
> Danke Euch allen - Matthias
>
Mit der txt-db-api:

SELECT * FROM TABLE WHERE ID=Zeilennummer

Re: Datenbank oder Flatfile

am 16.08.2006 16:25:56 von Heiko Kuerschner

Matthias Ribeaucourt schrieb:

> 1. Die Daten werden in einer DB gepflegt. Diese ist nicht am Internet
> und soll es auch nicht.

Das ist schon mal gut.

> 2. Bisher wurden Sie als CSV-File exportiert und an einen
> Dienstleister gegeben, der sie seinerseits wieder in eine MySQL-DB
> eingegeben hat - per Automatik. Genaueres weiß ich noch nicht.
> Beziehungsprobleme...

Dann laß sie Dir als dump geben und spiele den auf einen SQL-Server ein.
Einfacher kannst Du es dann eigentlich nicht bekommen.

--
Kürsche
Wenns 'ner net gwittern tun tut ;)
Linux/*BSD-Anleitungen, Forum und Chat: www.newbie-net.de

Re: Datenbank oder Flatfile

am 16.08.2006 16:26:06 von Matthias Ribeaucourt

Josi schrieb:

> Mit der txt-db-api:
>
> SELECT * FROM TABLE WHERE ID=Zeilennummer

Hallo Josi,

danke für den Hinweis! Das klingt interessant. Werd ich mir mal
durchlesen. (http://www.c-worker.ch/)

Gerande lad ich mir ein Beispiel-Flatfile runter...
Werde also bald schlauer sein und alles konkretisiert sich etwas!

Grüße - Matthias

--


'Es ist von großem Vorteil, die Fehler, aus denen man lernen kann,
recht früh zu machen.' [Winston Churchill]
http://www.kundengewinner.net

Re: Datenbank oder Flatfile

am 17.08.2006 12:25:44 von Andreas Froede

Matthias P. Wuerfl wrote:
> Matthias Ribeaucourt schrieb:

> > 15MB Flatfile abgrasen dauert ca. 180 Sek....???

Implementierst Du auf nem C64 mit Auslagerung auf Disketten???

> Die richtigen Zeilen auszulesen und auszugeben geht schnell. Die
> richtigen Zeilen zu suchen - das dauert lange. Dafür haben DBMSse halte
> einen "Index". Das kann man zwar für eine Datei auch von Hand bauen,
> bedeutet aber Aufwand.

Wir reden hier von einem readonly-Ansatz mit regelmässigem zentralen
Update. D.h. er kann den Kram beim Import geeignet strukturieren. Und
das macht er einmal beim Bauen des Importskriptes. (Letzlich macht es
das DBMS nicht anders: bauen eines Index beim Insert)
Ein DBMS ist nötig, wenn man richtig viel Daten hat oder sich das Teil
um die Integrität der Daten kümmern muß. Ein DBMS mit der Speicherung
einer Handvoll von Karteikarten zu belästigen ist gotteslästerlich! :-)

CIAO
andreas
--
.... oben geht es um den Thron - unten geht es um Deinen Hintern ...
[Keimzeit]
Klettern in Thüringen: http://www.climb.spider-net.de
Kletterhalle in Jena: http://www.wand.spider-net.de

Re: Datenbank oder Flatfile

am 17.08.2006 12:58:18 von Matthias Ribeaucourt

Hallo NG,

nun wird es ernst :-)
Inzwischen habe ich eine Beispieldatei und weiß:
Es sind zwar fortlaufende Nummern, allerdings mit einigen Lücken. Das
System hab ich noch nicht erkannt...

Nach einigen Tests mit Grep scheint mir die Geschwindigkeit einer
einfachen Suche mit RegExp schnell genug. Hier läuft das auf einem iMac
G5 mit 1.9Ghz + 1.5GB RAM...
Ob man auf einem 08/15 Server bei 1+1 vergleichbare Geschwindigkeit
erzielen kann???

Die Sache mit der txt-db-api scheint mir zwar sehr interessant, aber:
- die Daten sollen damit ja *nicht* gepflegt werden.
- und alles würde doch um einiges komplizierter, jedoch der Vorteil,
eine Zeile direkt auszulesen könnte nicht genutzt werden.

Was meint Ihr?

Grüße - Matthias


--


'Es ist von großem Vorteil, die Fehler, aus denen man lernen kann,
recht früh zu machen.' [Winston Churchill]
http://www.kundengewinner.net

Re: Datenbank oder Flatfile

am 18.08.2006 10:07:32 von do.not.REMOVETHAT

Andreas Froede schrieb:

> Wir reden hier von einem readonly-Ansatz mit regelmässigem zentralen
> Update. D.h. er kann den Kram beim Import geeignet strukturieren. Und
> das macht er einmal beim Bauen des Importskriptes. (Letzlich macht es
> das DBMS nicht anders: bauen eines Index beim Insert)

Wer bezahlt die Zeit, die man zum Bau benötigt?

> Ein DBMS mit der Speicherung
> einer Handvoll von Karteikarten zu belästigen ist gotteslästerlich! :-)

Man nimmt für sowas kein "richiges" DBMS, sondern MySQL, und das ist
genau dafür da.

Wenn Du sowas lieber von Hand machst, dann kannst Du das gerne tun und
ich will Dich daran nicht hindern.

Grüße, Matthias

Re: Datenbank oder Flatfile

am 18.08.2006 11:10:03 von Andreas Froede

Matthias P. Wuerfl wrote:
> Andreas Froede schrieb:


> > D.h. er kann den Kram beim Import geeignet strukturieren. Und
> > das macht er einmal beim Bauen des Importskriptes.

> Wer bezahlt die Zeit, die man zum Bau benötigt?

Wer bezahlt die permanente Wartung (Patches) ein unnötigen DBMS?
Im übrigen muß auch der Import ins DBMS gebaut werden.


> Wenn Du sowas lieber von Hand machst, dann kannst Du das gerne tun und
> ich will Dich daran nicht hindern.

Ich finde es einfach nur krank für jeden Kleinkram 'ne Maschine
hin zu stellen, nur weil jemand beim entwickeln nicht nachgedacht hat.
(Oder vor lauter Schichtenmodellen nicht mehr durchblickt)

CIAO
andreas
--
.... oben geht es um den Thron - unten geht es um Deinen Hintern ...
[Keimzeit]
Klettern in Thüringen: http://www.climb.spider-net.de
Kletterhalle in Jena: http://www.wand.spider-net.de

Re: Datenbank oder Flatfile

am 24.08.2006 06:30:06 von Thomas Rachel

Matthias Ribeaucourt wrote:

> Hallo NG,
>
> was ist unter Einbeziehung aller Aspekte die bessere Lösung:

[snip]

Du hast ja jetzt viele Pro- und Kontra-Argumente erhalten. Vielleicht
wäre es an dieser Stelle sinnvoll, wenn Du (was IMHO relativ wenig
Aufwand sein dürfte), für die Aufgaben, die Dir vorschweben (vermutlich
in erster Linie durchsuchen und Daten ausgeben) Funktionen schreibst,
die dann aufgerufen werden können.


// Bin mit der genauen Syntax nicht mehr so vertraut,
// daher hier nur Pseudocode
function flat_open()
{
$datei=fopen(...,"r");
}

function flat_walk($datei,$kriterium)
{
$zeile=readline($datei);
if (not eof) {
// Zeile aufsplitten
// Kriterium überprüfen
return $benötigteFelder;
} else {
close($datei);
}
}

function db_open()
{
$db=mysql_connect(...);
mysql_select_db($db,"...");
$res=mysql_query("...",$db);
return array($db, $res);
}

function db_walk($arr,$kriterium)
{
list($db, $res)=$arr;
$row=mysql_fetch_row($res);
if ($row) {
return $row[3]; // oder so was
} else {
mysql_free_result($res);
mysql_close($db);
}
}

Evtl. vielleicht sogar eine Funktion walk(), die abhängig vom Eingabetyp
(Array oder Datei) die eine oder andere Funktion aufruft, dann sind
Änderungen nur bei ..._open nötig.

Oder ..._open gibt im einen Fall array('FILE',$file) und im anderen Fall
array('DB',$db,$res) zurück.

HTH,


Thomas
--
Neueste Meldung: Das Geld wird abgeschafft. Ich zum Beispiel hab schon
gar keins mehr, viele Bekannte auch nicht.