RE: Tabellen-Größe reduzieren

Uwe Driessen driessen at fblan.de
Sa Apr 25 00:55:32 CEST 2009


> -----Original Message-----
> From: mysql-de-bounces+driessen=fblan.de at lists.4t2.com [mailto:mysql-de-
> bounces+driessen=fblan.de at lists.4t2.com] On Behalf Of Rene Thiel
> Sent: Friday, April 24, 2009 10:50 PM
> To: mySQL-Liste
> Subject: Tabellen-Größe reduzieren
> 
> Guten Morgen.
> 
> wie kann es sein, dass:
> 
> CREATE TABLE IF NOT EXISTS `chc_log_data` (
>   `nr` int(8) NOT NULL default '0',
>   `ip` varchar(25) NOT NULL,
>   `host` varchar(55) NOT NULL,
>   `user_agent` varchar(255) NOT NULL default '',
>   `is_robot` int(1) NOT NULL default '0',
>   `http_accept_language` varchar(55) NOT NULL,
>   `timestamp` int(14) NOT NULL default '0',
>   `referrer` varchar(255) NOT NULL default '',
>   `seitenaufrufe` int(14) NOT NULL default '0',
>   `seiten` text NOT NULL,
>   `downloads` text NOT NULL,
>   `hyperlinks` text NOT NULL,
>   `js` int(1) NOT NULL default '0',
>   `aufloesung` varchar(25) NOT NULL,
>   PRIMARY KEY  (`nr`),
>   KEY `timestamp` (`timestamp`)
> ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
> 
> nicht weniger Speicher braucht als:
> 
> CREATE TABLE IF NOT EXISTS `chc_log_data` (
>   `nr` int(14) NOT NULL default '0',
>   `ip` varchar(255) NOT NULL default '',
>   `host` varchar(255) NOT NULL default '',
>   `user_agent` varchar(255) NOT NULL default '',
>   `is_robot` int(1) NOT NULL default '0',
>   `http_accept_language` varchar(255) NOT NULL default '',
>   `timestamp` int(14) NOT NULL default '0',
>   `referrer` varchar(255) NOT NULL default '',
>   `seitenaufrufe` int(14) NOT NULL default '0',
>   `seiten` text NOT NULL,
>   `downloads` text NOT NULL,
>   `hyperlinks` text NOT NULL,
>   `js` int(1) NOT NULL default '0',
>   `aufloesung` varchar(255) NOT NULL default '',
>   PRIMARY KEY  (`nr`),
>   KEY `timestamp` (`timestamp`)
> ) ENGINE=MyISAM DEFAULT CHARSET=latin1;

Schau dir den Verbrauch der Felder an 
Varchar L+1 max 255	*5	max 1275
Int 		4		*5		20
Timestamp	4		*1		 4
Text 		L+2		*3		kann sehr groß werden 

179000 * 1305	=	233595000 zzgl. den Indexen	

Statt int(1) tinyint  statt 4 1 Byte verbrauch

Ansonsten Felder nur solange wie wirklich benötigt 

> 
> ca. 179.000 Datensätze = ca. 79 MB!
> Wobei `downloads` und `hyperlinks` (bisher) ohne Inhalt sind.
> 
> Hat jemand Optimierungs-Vorschläge?
> 

Weniger Datensätze? *gg 

Mit freundlichen Grüßen

Drießen

-- 
Software & Computer
Uwe Drießen
Lembergstraße 33
67824 Feilbingert
Tel.: +49 06708 / 660045   Fax: +49 06708 / 661397