PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : MySQL - Was leistet es?



saintjoe
02.09.2002, 23:41
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:




<?
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ß

Andre
03.09.2002, 00:04
<?

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 :))))

jensemann
04.09.2002, 01:04
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