emailverwaltung (große datenbank vs. kleine datenbanken)

emailverwaltung (große datenbank vs. kleine datenbanken)

am 30.01.2006 12:32:57 von Karl

hallo,

ich habe eine emailverwaltung geschrieben, die eingehende emails per
perl in die datenbank schreibt und dann in einer datenbank ablegt. das
frontend ist mit php realisiert.

ich habe natürlich mehrere benutzer.
derzeit landen alle emails in einer datenbank.

meine datenbank ist nach ein paar monaten schon um die 200mb groß.
mehrere datenbanken wären meiner meinung nach leichter zu sichern.

meine fragen:
wäre es nicht besser für jeden benutzer eine eigene datenbank
abzulegen?
ist mysql langsamer mit dem umgang mit vielen kleineren datenbanken
gegenüber einer großen?

freu mich auf eure meinungen.

Re: emailverwaltung (großedatenbank vs. kleine datenbanken)

am 30.01.2006 13:34:05 von Andreas Kretschmer

Andreas
--
Andreas Kretschmer
Linux - weil ich es mir wert bin!
GnuPG-ID 0x3FFF606C http://wwwkeys.de.pgp.net

Re: emailverwaltung (große datenbank vs. kleine datenbanken)

am 30.01.2006 14:55:44 von Karl Steiner

Andreas Kretschmer schrieb:

> begin karl schrieb:
> Hast Du auch einen richtigen Namen?

Ja. Ich poste über Google Groups (zum ersten mal), und dabei ist
scheinbar der "Spitzname" der volle Name. Ist nun geändert.

> Wozu einklich, Dinge wie IMAP existieren. Was ist das Ziel dabei?

Als ich mit dem Programm anfing, hatte ich noch keinen root-Server.
Daher wird alles in der Datenbank abgelegt. Wenn IMAP eine bessere
Lösung ist (?) kann ich das ändern.

> Du bist Dir sicher, damit keine datenschutzrechtlichen Probleme zu
> bekommen?

Wieso? Jeder Benutzer bekommt ja nur seine eigenen E-Mails angezeigt.

> - Was sind Deine Ziele?
> - Für was brauchst Du die Datenbank?
> - wer sucht was und wie darin?

Das ganze ist ein Buchungsprogramm für Privatvermieter. (Fewo's usw.)
In der Datenbank werden zur Zeit die ganzen Kunden, deren E-Mails,
deren Belegungspläne, deren E-Mail Vorlagen usw. abgelegt.

Bei Interesse kann ich dir den Link zur Vorabversion schicken.

> Kauf Dir mal eine neue Tastatur, an der derzeitigen klemmt die
> Shift-Taste.

Eine Neue wurde eben angesteckt ;-)

MfG
Karl

Re: emailverwaltung (große datenbank vs. kleine datenbanken)

am 30.01.2006 15:07:00 von Christian Kirsch

Karl Steiner schrieb:
> Andreas Kretschmer schrieb:
>
>> begin karl schrieb:
>> Hast Du auch einen richtigen Namen?
>
> Ja. Ich poste über Google Groups (zum ersten mal), und dabei ist
> scheinbar der "Spitzname" der volle Name. Ist nun geändert.
>
>> Wozu einklich, Dinge wie IMAP existieren. Was ist das Ziel dabei?
>
> Als ich mit dem Programm anfing, hatte ich noch keinen root-Server.
> Daher wird alles in der Datenbank abgelegt. Wenn IMAP eine bessere
> Lösung ist (?) kann ich das ändern.
>

Es ist. Bzw.: Es gibt fertig IMAP-Server, da muss man nicht großartig
rumprogrammieren.

>> Du bist Dir sicher, damit keine datenschutzrechtlichen Probleme zu
>> bekommen?
>
> Wieso? Jeder Benutzer bekommt ja nur seine eigenen E-Mails angezeigt.
>

Die Frage ist ja, ob Du z.B. die Mails der Benutzer lesen kannst (oder
ob Du sie verschlüsselt speicherst, sodass nur die Benutzer sie lesen
können). Aber das Problem ist unabhängig davon, ob Du IMAP oder
sonstwas benutzt.

>> - Was sind Deine Ziele?
>> - Für was brauchst Du die Datenbank?
>> - wer sucht was und wie darin?
>
> Das ganze ist ein Buchungsprogramm für Privatvermieter. (Fewo's usw.)
> In der Datenbank werden zur Zeit die ganzen Kunden, deren E-Mails,
> deren Belegungspläne, deren E-Mail Vorlagen usw. abgelegt.
>

Womit die Datenschutzüberlegungen sich wohl erledigt haben dürften.
Vielleicht ist bei diesen Rahmenbedingungen auch das Speichern der
Nachrichten in einer DB nicht völlig abwegig, zumindest muss man sich
dann nicht übermäßig Gedanken um die Integration von IMAP in das
System machen.

Allerdings sehe ich wie Andreas auch nicht, wozu man da mehrere
Datenbanken brauchen würde (und aus Gründen der Vertraulichkeit würde
ich die Mails vielleicht verschlüsselt speichern).

Re: emailverwaltung (große datenbank vs. kleine datenbanken)

am 30.01.2006 15:23:11 von Karl Steiner

Christian Kirsch schrieb:

> Allerdings sehe ich wie Andreas auch nicht, wozu man da mehrere
> Datenbanken brauchen würde (und aus Gründen der Vertraulichkeit wür=
de
> ich die Mails vielleicht verschlüsselt speichern).

Mein ganzes Webfrontend ist an das von Gmail angelehnt.
Ich möchte nun auch eine Suchfunktion wie bei Gmail realisieren damit
jeder Kunde seine Emails in Bruchteilen einer Sekunde durchsuchen kann.
Um die Suchgeschwindigkeit zu erreichen möchte ich einen eigenen Index
aufbauen. Dazu brauche ich einige Tabellen die sehr viele Zeilen haben
werden.

Daher kam die Idee einer Pro-User-Datenbank.

MfG
Karl

Re: emailverwaltung (große datenbank vs. kleine datenbanken)

am 30.01.2006 15:30:45 von Dominik Echterbruch

Karl Steiner wrote:
> Christian Kirsch schrieb:
>
>
>>Allerdings sehe ich wie Andreas auch nicht, wozu man da mehrere
>>Datenbanken brauchen würde (und aus Gründen der Vertraulichkeit würde
>>ich die Mails vielleicht verschlüsselt speichern).
>
>
> Mein ganzes Webfrontend ist an das von Gmail angelehnt.
> Ich möchte nun auch eine Suchfunktion wie bei Gmail realisieren damit
> jeder Kunde seine Emails in Bruchteilen einer Sekunde durchsuchen kann.
> Um die Suchgeschwindigkeit zu erreichen möchte ich einen eigenen Index
> aufbauen. Dazu brauche ich einige Tabellen die sehr viele Zeilen haben
> werden.

Was heißt sehr viele Zeilen? Mehr als 100.000.000? Das wäre in meinen
Augen recht viel.
Allerdings schreit dein Vorhaben ja geradezu nach einem Volltext-Index
[1]. Da geht das ganze völlig ohne zusätzliche Tabellen :)

[1] http://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html


Grüße,
Dominik
--
MonstersGame - Die Schlacht zwischen Vampiren und Werwölfen
http://spielwelt6.monstersgame.net/?ac=vid&vid=3018786

Re: emailverwaltung (große datenbank vs. kleine datenbanken)

am 30.01.2006 15:31:51 von Dominik Echterbruch

Karl Steiner wrote:
>
> Mein ganzes Webfrontend ist an das von Gmail angelehnt.
> Ich möchte nun auch eine Suchfunktion wie bei Gmail realisieren damit
> jeder Kunde seine Emails in Bruchteilen einer Sekunde durchsuchen kann.
> Um die Suchgeschwindigkeit zu erreichen möchte ich einen eigenen Index
> aufbauen. Dazu brauche ich einige Tabellen die sehr viele Zeilen haben
> werden.

Was heißt sehr viele Zeilen? Mehr als 100.000.000? Das wäre in meinen
Augen recht viel.
Allerdings schreit dein Vorhaben ja geradezu nach einem Volltext-Index
[1]. Da geht das ganze völlig ohne zusätzliche Tabellen :)

[1] http://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html


Grüße,
Dominik
--
MonstersGame - Die Schlacht zwischen Vampiren und Werwölfen
http://spielwelt6.monstersgame.net/?ac=vid&vid=3018786

Re: emailverwaltung (großedatenbank vs. kleine datenbanken)

am 30.01.2006 15:32:45 von Andreas Kretschmer

Andreas
--
Andreas Kretschmer
Linux - weil ich es mir wert bin!
GnuPG-ID 0x3FFF606C http://wwwkeys.de.pgp.net

Re: emailverwaltung (große datenbank vs. kleine datenbanken)

am 30.01.2006 15:46:37 von Christian Kirsch

Karl Steiner schrieb:
> Christian Kirsch schrieb:
>
>> Allerdings sehe ich wie Andreas auch nicht, wozu man da mehrere
>> Datenbanken brauchen würde (und aus Gründen der Vertraulichkeit würde
>> ich die Mails vielleicht verschlüsselt speichern).
>
> Mein ganzes Webfrontend ist an das von Gmail angelehnt.
> Ich möchte nun auch eine Suchfunktion wie bei Gmail realisieren damit
> jeder Kunde seine Emails in Bruchteilen einer Sekunde durchsuchen kann.

Das hört sich für mich wie Overengineering an (in dem Zusammenhang mit
Ferienwohnungen). Was ich viel prickelnder fände, wäre eine
vernünftige Gruppierung der Mails (nach Empfänger/Absender und/oder
Objekt).


> Um die Suchgeschwindigkeit zu erreichen möchte ich einen eigenen Index
> aufbauen. Dazu brauche ich einige Tabellen die sehr viele Zeilen haben
> werden.

Na und?
Zum einen könntest Du überlegen, den Volltextindex von MySQL zu
nutzen. Zum anderen s.o.: Volltextsuche in E-Mails braucht man
vielleicht als schlecht organisierter Privatmensch häufiger mal. Wenn
Du Deinen Kunden vernünftige Möglichkeiten bietest, ihre Mails zu
organisieren, ist dieser Volltextkram vielleiht gar nicht nötig.

Re: emailverwaltung (große datenbank vs. kleine datenbanken)

am 30.01.2006 15:55:32 von Karl Steiner

Dominik Echterbruch schrieb:

> Was heißt sehr viele Zeilen? Mehr als 100.000.000? Das wäre in meinen
> Augen recht viel.
> Allerdings schreit dein Vorhaben ja geradezu nach einem Volltext-Index
> [1]. Da geht das ganze völlig ohne zusätzliche Tabellen :)

Da ich Transactions verwende, bin ich gezwungen InnoDB zu nehmen.
InnoDB kann meines Wissens keinen Fulltext-Index aufbauen.

Außerdem brauchen Suchanfragen (laut diversen Newsgroups-postings) in
großen Datenbanken bald einige Sekunden.
Dies will ich auf jeden Fall vermeiden. Suchanfragen sollten weit unter
einer Sekunde dauern.

MfG
Karl

Re: emailverwaltung (große datenbank vs. kleine datenbanken)

am 30.01.2006 16:00:40 von Christian Kirsch

Karl Steiner schrieb:
>
> Außerdem brauchen Suchanfragen (laut diversen Newsgroups-postings) in
> großen Datenbanken bald einige Sekunden.
> Dies will ich auf jeden Fall vermeiden. Suchanfragen sollten weit unter
> einer Sekunde dauern.
>

Hast Du auch noch darüber hinaus gelesen? Z.B. Dich damit beschäftigt,
*warum* diese 'Suchanfragen' so lange brauchten? Dieses abstrakte
Rumgerede ist ziemlich zweckfrei. Poste die Query, die zu lange
braucht, poste die Ausgabe von SHOW CREATE TABLE, dann gibt's was,
worüber man reden kann. Alles andere ist Stochern im Nebel und
Zeitverschwendung.

200 MB ist, wie Dir viele hier bestätigen werden, *keine* große Datenbank.

Re: emailverwaltung (große datenbank vs. kleine datenbanken)

am 30.01.2006 16:01:38 von Karl Steiner

Andreas Kretschmer schrieb:

> Allgemein: eine DB (auch wenn ich kein MySQL-Freund bin) wird eher durch
> die Festplatte begrenzt. Wenn Du die User auf einzelne DB's aufteilst,
> wäre es u.U. von Zugriffsrechten her einfacher, mehr aber auch nicht.
> Das DB-Sytem hätte unterm Strich mehr Aufwand durch Metadaten für jede
> einzelne Datenbank. Wenn Du Performance-probleme hast, dann beschäftige
> Dich eher mit Indexen und Explain.

Danke! Dies ist im Grunde die Antwort die ich gesucht habe.
Performanceprobleme habe ich keine ;-)

Nur das Backup von einer rießigen Datenbank (zb mehrere Gigabytes)
macht mir schon ein bisschein Angst :|

MfG
Kalr

Re: emailverwaltung (große datenbank vs. kleine datenbanken)

am 30.01.2006 16:05:17 von Dominik Echterbruch

Karl Steiner wrote:

> Nur das Backup von einer rießigen Datenbank (zb mehrere Gigabytes)
> macht mir schon ein bisschein Angst :|

Mir nicht. Das funktioniert ziemlich gut, solange die DB in Ordnung ist.


Grüße,
Dominik
--
MonstersGame - Die Schlacht zwischen Vampiren und Werwölfen
http://spielwelt6.monstersgame.net/?ac=vid&vid=3018786

Re: emailverwaltung (großedatenbank vs. kleine datenbanken)

am 30.01.2006 16:05:21 von Andreas Kretschmer

Andreas
--
Andreas Kretschmer
Linux - weil ich es mir wert bin!
GnuPG-ID 0x3FFF606C http://wwwkeys.de.pgp.net

Re: emailverwaltung (große datenbank vs. kleine datenbanken)

am 30.01.2006 16:06:40 von Dominik Echterbruch

Karl Steiner wrote:
> Dominik Echterbruch schrieb:
>
>
>>Was heißt sehr viele Zeilen? Mehr als 100.000.000? Das wäre in meinen
>>Augen recht viel.
>>Allerdings schreit dein Vorhaben ja geradezu nach einem Volltext-Index
>>[1]. Da geht das ganze völlig ohne zusätzliche Tabellen :)
>
>
> Da ich Transactions verwende, bin ich gezwungen InnoDB zu nehmen.
> InnoDB kann meines Wissens keinen Fulltext-Index aufbauen.

Da ist leider viel wahres dran...


Grüße,
Dominik
--
MonstersGame - Die Schlacht zwischen Vampiren und Werwölfen
http://spielwelt6.monstersgame.net/?ac=vid&vid=3018786

Re: emailverwaltung (großedatenbank vs. kleine datenbanken)

am 30.01.2006 16:15:28 von Andreas Kretschmer

Andreas
--
Andreas Kretschmer
Linux - weil ich es mir wert bin!
GnuPG-ID 0x3FFF606C http://wwwkeys.de.pgp.net

Re: emailverwaltung (große datenbank vs. kleine datenbanken)

am 30.01.2006 16:30:47 von Karl Steiner

Christian Kirsch schrieb:

> Das hört sich für mich wie Overengineering an (in dem Zusammenhang mit
> Ferienwohnungen). Was ich viel prickelnder fände, wäre eine
> vernünftige Gruppierung der Mails (nach Empfänger/Absender und/oder
> Objekt).

Gruppierung der Mails in Konversationen wie bei Gmail hab ich mir mal
überlegt. Nur scheint mir der Aufwand doch recht groß, da ja die
zitierten Texte der Mails wie bei Gmail wegen der Übersicht
ausgeblendet werden sollten. Sonst ist ja die Email-Ansicht ewig lang.

>
> Na und?
> Zum einen könntest Du überlegen, den Volltextindex von MySQL zu
> nutzen. Zum anderen s.o.: Volltextsuche in E-Mails braucht man
> vielleicht als schlecht organisierter Privatmensch häufiger mal. Wenn
> Du Deinen Kunden vernünftige Möglichkeiten bietest, ihre Mails zu
> organisieren, ist dieser Volltextkram vielleiht gar nicht nötig.

Buchungsanfragen werden oft auch vom Arbeitsplatz getätigt. Dort
ändert sich zwar die Mail-Adresse aber nicht der "Name". Eine schnelle
Suche nach dem "Nachname" in den Emails ist auch für den gut
organisierten Menschen hilfreich ;-)

Ich selbst liebe die Suchfunktion von Gmail. Fällt also ein bisschen
unter die Kategorie *auch haben will* ;-)

MfG
Karl

Re: emailverwaltung (große datenbank vs. kleine datenbanken)

am 30.01.2006 16:36:35 von Christian Kirsch

Karl Steiner schrieb:
> Christian Kirsch schrieb:
>
>> Das hört sich für mich wie Overengineering an (in dem Zusammenhang mit
>> Ferienwohnungen). Was ich viel prickelnder fände, wäre eine
>> vernünftige Gruppierung der Mails (nach Empfänger/Absender und/oder
>> Objekt).
>
> Gruppierung der Mails in Konversationen wie bei Gmail hab ich mir mal
> überlegt. Nur scheint mir der Aufwand doch recht groß, da ja die
> zitierten Texte der Mails wie bei Gmail wegen der Übersicht
> ausgeblendet werden sollten. Sonst ist ja die Email-Ansicht ewig lang.
>

Ja, und? Dafür gibt's doch die Subject-Zeile. Ich kenne GMail nicht,
aber aktuelle Mailreader bieten doch auch Threading. What's the big deal?


>> Na und?
>> Zum einen könntest Du überlegen, den Volltextindex von MySQL zu
>> nutzen. Zum anderen s.o.: Volltextsuche in E-Mails braucht man
>> vielleicht als schlecht organisierter Privatmensch häufiger mal. Wenn
>> Du Deinen Kunden vernünftige Möglichkeiten bietest, ihre Mails zu
>> organisieren, ist dieser Volltextkram vielleiht gar nicht nötig.
>
> Buchungsanfragen werden oft auch vom Arbeitsplatz getätigt. Dort
> ändert sich zwar die Mail-Adresse aber nicht der "Name". Eine schnelle
> Suche nach dem "Nachname" in den Emails ist auch für den gut
> organisierten Menschen hilfreich ;-)
>

Weshalb ich oben auch 'und/oder Objekt' schrieb. Du wirfst im Moment
mit einer Kanone nach einem Spatzen. Sicherlich wirst Du ihn auch
treffen (man muss ja nur die Kanone groß genug wählen).

Außerdem muss kein Mensch im Mailtext nach dem Namen des Absenders
suchen. RFC822 (IIRC) ist Dein Freund - es *gibt* den To-Header.

> Ich selbst liebe die Suchfunktion von Gmail. Fällt also ein bisschen
> unter die Kategorie *auch haben will* ;-)

Ach so, *Du* willst das haben. Das ist natürlich was anderes. Ich
dachte, es gehe um Deine Kunden. Vergiss meine Einwände, frohes Basteln.

Re: emailverwaltung (großedatenbank vs. kleine datenbanken)

am 30.01.2006 17:07:38 von Axel Schwenke

Andreas Kretschmer wrote:
>karl schrieb:

>> ich habe eine emailverwaltung geschrieben, die eingehende emails per
>> perl in die datenbank schreibt und dann in einer datenbank ablegt. das
>> frontend ist mit php realisiert.
>
> Wozu einklich, Dinge wie IMAP existieren.

IMAP definiert ein Protokoll, vermöge dessen MUA auf Mailbestände
zugreifen. Das Backend zur Speicherung der Mails *im Mailserver*
hat damit nichts zu tun. So gibt es z.B. IMAP-Server die verwenden
Berkeley-DB.

>> ich habe natürlich mehrere benutzer.
>> derzeit landen alle emails in einer datenbank.
>
> Du bist Dir sicher, damit keine datenschutzrechtlichen Probleme zu
> bekommen?

Auch das hat mit der Speicherung der Daten nix zu tun. Bei mbox- oder
Maildir-Mailboxen liegen die Daten aller Nutzer in *einem* Filesystem,
so in *einer* Datenbank.


XL

Re: emailverwaltung (großedatenbank vs. kleine datenbanken)

am 30.01.2006 17:56:46 von Andreas Kretschmer

Andreas
--
q: why do so many people take an instant dislike to mysql?
a: it saves time (oicu in #postgresql)
Explaining the concept of referential integrity to a mysql user is like
explaining condoms to a catholic (Shadda in #postgresql)