MySQL - Was leistet es?

S

saintjoe

Wer wollte nicht schon immer mal das Verhalten von MySQL bei großen Datenbanken testen?
Ganz einfach.
Leg 2 identische Tabellen an, setz ein paar Indices usw.
Füge für den Anfang, 2 Datensätze (oder mehr, je nach dem an) und dann führe folgendes Script aus:

PHP:
<?
echo "Nice Script to dramatically increase DB sizes<br> ";
$db = mysql_connect(bla);
$dbb = mysql_select_db(bla);

//Let's start with 20 runs ;)
$i = 0;
while($i<=19)
{
$count = $i + 1;
echo "Run Number: $count<br>";
        $run = mysql_query("INSERT INTO Kstamm2 SELECT * FROM Kstamm", $db);
        $run = mysql_query("INSERT INTO Kstamm SELECT * FROM Kstamm2", $db);
        $i++;
}
echo "That was it.";
?>

Hier hab ich mal ein kleines Grundgerüst für eine Tabelle gebaut, einfach so ausführen (direkt in MySQL)

CREATE TABLE Kstamm (
AKZ varchar(255) default NULL,
TITELTEXT varchar(255) default NULL,
NACHNAME varchar(255) default NULL,
VORNAME varchar(255) default NULL,
STRASSE1 varchar(255) default NULL,
FIRMA1 varchar(255) default NULL,
PLZ varchar(255) default NULL,
ORT varchar(255) default NULL,
PRIVATADRESSE varchar(255) default NULL,
FIRMENADRESSE varchar(255) default NULL,
KUNDENNR int(4) NOT NULL,
DUBLID int(4) default NULL,
EnewsID varchar(255) default NULL,
LKZ varchar(255) default NULL,
SXVORNAME varchar(255) default NULL,
SXNACHNAME varchar(255) default NULL,
SXSTRASSE1 varchar(255) default NULL,
SXORT varchar(255) default NULL,
INDATE datetime default NULL,
CHDATE datetime default NULL,
EMAIL varchar(255) default NULL,
EMailFormat varchar(255) default NULL,
EMail_nicht_zugestellt varchar(255) default NULL,
EMail_Sperre varchar(255) default NULL,
Newsletter_Abo varchar(255) default NULL,
GEBDAT varchar(255) default NULL,
ZGTEXT varchar(255) default NULL,
ZG varchar(255) default NULL,
TELEFON varchar(255) default NULL,
FAX varchar(255) default NULL,
MOBIL varchar(255) default NULL,
SMSFreigabe varchar(255) default NULL,
MAILSPERRE varchar(255) default NULL,
NICHTZUSTELLBAR varchar(255) default NULL,
QUELLE varchar(255) default NULL,
QUELLID int(4) default NULL,
ZuspielID varchar(255) default NULL,
abonent varchar(255) default NULL,
EMAIL_PDate datetime default NULL,
SMS_PDate varchar(255) default NULL,
ALLG_PDate datetime default NULL,
EMAIL_PType varchar(255) default NULL,
SMS_PType varchar(255) default NULL,
ALLG_PType varchar(255) default NULL,
Mailsperre14j varchar(255) default NULL,
KEY AKZ (AKZ),
KEY DUBLID (DUBLID),
KEY EnewsID (EnewsID),
KEY QUELLID (QUELLID),
KEY ZuspielID (ZuspielID),
KEY ORT (ORT),
KEY VORNAME (VORNAME),
KEY NACHNAME (NACHNAME),
KEY PLZ (PLZ),
KEY STRASSE1 (STRASSE1),
KEY EMAIL (EMAIL)
) TYPE=MyISAM;

Beachten:
Tabellennamen beim Erzeugen und im Script selber anpassen!

Gruß
 
PHP:
<?

echo "Nice Script to dramatically increase DB sizes<br> ";

$db = mysql_connect(bla);

$dbb = mysql_select_db(bla);



//Let's start with 20 runs <img src="images/smilies/wink.gif" border="0" alt="">

$i = 0;

while($i<=1900000)

{

$count = $i + 1;

echo "Run Number: $count<br>";

        $run = mysql_query("INSERT INTO Kstamm2 SELECT * FROM Kstamm", $db);

        $run = mysql_query("INSERT INTO Kstamm SELECT * FROM Kstamm2", $db);

        $i++;

}

echo "That was it.";



?>

wie wärs damit???
//test auf eigene Gefahr :))))
 
Hi

So ein test ist zwar schon recht interessant, aber im endeffekt ziemlich sinnlos. Die Liestung von MySQL hängt sehr stark davon ab wie es kompiliert wurde und natürlich auch von der Hardware (IO Durchsatz etc...). Hinzukommt das Datenbank Größe bei keiner mir bekannten DB ein Problem darstellt, viel eher ist das verhalten interssant bei sehr vielen connections. So ab 1200 wird es lustig, dann kann man mysql mal schwitzen sehen :D

Mfg jensemann
 

Ähnliche Themen

CentOS 5.8 –SQL Abfrage– HTML wird generiert und daraus müssen mehrere Mails versendet werden

Mit bash mysql in Schleife abfragen

Prblem mit zeilenweises auslesen von Datei und schreiben nach mysql

MySQL Abfrage mit TOP und CONCAT

dovecot und postfix Konfiguration Problem

Zurück
Oben