phpbar.de logo

Mailinglisten-Archive

kommentare zu tabellen struktur

kommentare zu tabellen struktur

Georg Richter mysql-de_(at)_lists.bttr.org
Sat, 2 Feb 2002 23:12:48 +0100


On Saturday, 2. February 2002 21:53, Jens Luedicke wrote:
> hallo auch ...

Moin,

> ich programmiere so nebenbei an einem mail-programm
> mit mysql backend herum, und bin nun nach viel
> herumexperimentieren bei folgender tabellen-struktur gelandet:
>
> Create Table: CREATE TABLE `mails` (
>   `id` float NOT NULL auto_increment,

Float-Key sind tierisch lahm, warum musst Du float Keys benutzen?!

was treibt Dic h dazu, einen autoincrement, der nur int bzw. bigint ist auf 
ein float feld anzuwenden?!

>   `is_new` int(1) default NULL,

is_new klingt nach ja/nein?! Warum als integer definiert mit einer 
signifikanten Stelle!!

>   `folder_id` float default NULL,

>   `xmessage_id` varchar(40) default NULL,
>   `xin_reply_to` varchar(40) default NULL,
>   `xfrom` varchar(40) default NULL,
>   `xsubject` varchar(40) default NULL,
>   `xdate` varchar(40) default NULL,
>   `xto` varchar(40) default NULL,
>   `xreplyto` varchar(40) default NULL,
>   `xcc` varchar(50) default NULL,
>   `xbody` longtext,
>   `xheader` longtext,
>   PRIMARY KEY  (`id`),
>   FULLTEXT KEY `xbody` (`xbody`,`xheader`),
>   KEY `id_index` (`id`),
>   KEY `xmsg_id_index` (`xmessage_id`),
>   KEY `xin_reply_to_index` (`xin_reply_to`),
>   KEY `folder_id_index` (`folder_id`)
> ) TYPE=MyISAM ROW_FORMAT=DYNAMIC

Fazit: Lies Dir erst mal die Doku genau durch, insbesondere den Abschnitt 
CREATE TABLE und die entsprechenden column types.

> mein ziel ist es, auch bei tausenden von mails moeglichst schnell
> und effektiv damit arbeiten zu koennen. zur zeit schaffe
> ich es auf so 5000 mails/folder bevor es anfaengt richtig langsam
> zu werden.
>

Wie willst Du denn Dein Ziel umsetzen?!
Eine einfache Abfrage, vorrausgesetzt Du verwendest vernünftige Columntypes, 
dürfte nicht das Problem sein. Auch ohne Perfomrnaceeinbussen.

FulltextKey sollte nur da angewandt werden, wo es dringend und auch permanent 
gebraucht wird - ansonsten ist das Verhätlnis Bedarf/Nutzen/Speicher in einem 
sehr negativen Verhältnis.

Deinem create table statement nach zu urteilen - sorry, dass soll keine 
Massregelung sein, enpfehle ich Dir dringend, Dich erstmal ernsthaft mit der 
Doku auseinanderzusetzen.

In der Regel arbeitet ich nur sehr selten mit dem dynamic row_format. Kannst 
Du mir sagen, warum Du das grade verwendest?! Der Tabellenstruktur nach macht 
das nur wenig Sinn.


Georg

---
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->>  http://www.4t2.com/mysql 



php::bar PHP Wiki   -   Listenarchive