Hallo!
Ich sitze gerade an einen Projekt für einen Bekannten.
Ich habe dort mehrere Datenbanken, eine Globale User-DB und dann für jede seiner Webseiten eine Webseiten DB.
Jetzt müsste ich eigentlich in jeder PHP-Datei Daten aus den beiden Datenbanken ziehen.
Für mich stellt sich nun die Frage ob es sinn macht das zu machen, oder sollte man lieber eine API schreiben?
Was ist schneller?! Was ist besser?
Da mit jeden neuen Seiten Aufruf auch neue Daten aus beiden DB's Abgerufen werden müssen bzw. Hinzugefügt oder Upgedatet werden müssen.
Ich danke euch für die Hilfe und Kommentare die noch kommen werden.
Was würdet ihr machen? 2 Datenbanken...
gepostet vor 17 Jahre von Dexus
gepostet vor 17 Jahre von raufaser
Hi Dexus,
ich habe sowas mal gemacht, als wir bei einem Kundenprojekt die mySQL DB per Replikation auf 2 Server verteilt haben. Wenn man die mySQL Replikation nutzt macht man SELECTs auf der Slave DB, aber UPDATES und INSERTS müssen auf dem Master gemacht werden.
Wir haben es damals so gelöst, dass es einfach 2 DB connects gab, und die DB Klasse automatisch die richtige Verbindung für die Query genommen hat. Das würde ich dir auch vorschlagen. Mach dir einfach eine DB Klasse, wo du im Query angeben kannst, welche Verbindung genommen wird.
Vielleicht gibt es aber auch bessere Lösungen.
Gruß,
Marc
ich habe sowas mal gemacht, als wir bei einem Kundenprojekt die mySQL DB per Replikation auf 2 Server verteilt haben. Wenn man die mySQL Replikation nutzt macht man SELECTs auf der Slave DB, aber UPDATES und INSERTS müssen auf dem Master gemacht werden.
Wir haben es damals so gelöst, dass es einfach 2 DB connects gab, und die DB Klasse automatisch die richtige Verbindung für die Query genommen hat. Das würde ich dir auch vorschlagen. Mach dir einfach eine DB Klasse, wo du im Query angeben kannst, welche Verbindung genommen wird.
Vielleicht gibt es aber auch bessere Lösungen.
Gruß,
Marc
gepostet vor 17 Jahre von Dexus
Danke erst mal, ich habe auch schon überlegt ob ich mir vorher ne entsprechende Klasse erstelle, die Änderungen am aktuellen Klasse wären ja schnell gemacht...
Glaube ich warte noch paar Vorschläge ab, damit ich nicht vllt eine bessere Lösung verpasse und noch mal Starten muss
EDIT:
so habe mir mal Gedanken gemacht un das dabei raus bekommen:
function GetMySql($link)
{
global $g_link;
if( $g_link[$link] )
return $g_link[$link];
$g_link[$link] = mysql_connect( 'localhost', 'lalalalalala', 'xxxxxxxx') or die('Could not connect to server.' );
if ($link == 1) {
mysql_select_db('User', $g_link[$link]) or die('Could not select database.');
} elseif ($link == 2) {
mysql_select_db('Server1', $g_link[$link]) or die('Could not select database.');
}
return $g_link[$link];
}
function CloseDB($link)
{
global $g_link;
if( $g_link[$link] != false )
mysql_close($g_link[$link]);
$g_link[$link] = false;
}
$res = mysql_query("SELECT * FROM `USER` LIMIT 1", GetMySql(1) );
$res2 = mysql_query("SELECT * FROM `GAME` LIMIT 1", GetMySql(2) );
$row = mysql_fetch_assoc($res);
print_r($row);
$row2 = mysql_fetch_assoc($res2);
print_r($row2);
CloseDB(1); CloseDB(2);
Denke das Sollte so gut Funktionieren
Glaube ich warte noch paar Vorschläge ab, damit ich nicht vllt eine bessere Lösung verpasse und noch mal Starten muss
EDIT:
so habe mir mal Gedanken gemacht un das dabei raus bekommen:
function GetMySql($link)
{
global $g_link;
if( $g_link[$link] )
return $g_link[$link];
$g_link[$link] = mysql_connect( 'localhost', 'lalalalalala', 'xxxxxxxx') or die('Could not connect to server.' );
if ($link == 1) {
mysql_select_db('User', $g_link[$link]) or die('Could not select database.');
} elseif ($link == 2) {
mysql_select_db('Server1', $g_link[$link]) or die('Could not select database.');
}
return $g_link[$link];
}
function CloseDB($link)
{
global $g_link;
if( $g_link[$link] != false )
mysql_close($g_link[$link]);
$g_link[$link] = false;
}
$res = mysql_query("SELECT * FROM `USER` LIMIT 1", GetMySql(1) );
$res2 = mysql_query("SELECT * FROM `GAME` LIMIT 1", GetMySql(2) );
$row = mysql_fetch_assoc($res);
print_r($row);
$row2 = mysql_fetch_assoc($res2);
print_r($row2);
CloseDB(1); CloseDB(2);
Denke das Sollte so gut Funktionieren
gepostet vor 17 Jahre von Nuky
Was? 2 Datenbanken auf dem selben Server?
SELECT * FROM User.`USER` LIMIT 1
SELECT * FROM Server1.`GAME` LIMIT 1
Oder versteh ich grad was ganz falsch?
SELECT * FROM User.`USER` LIMIT 1
SELECT * FROM Server1.`GAME` LIMIT 1
Oder versteh ich grad was ganz falsch?
gepostet vor 17 Jahre von raufaser
gepostet vor 17 Jahre von Dexus
xD warum mache ich es mir auch immer Wieder so schwer -.- heute war glaube ich nicht mein geistreichster Tag... ^^
Wobei ich aber sagen kann, das mein Lösung ideal ist wenn die Daten nicht auf einen Server sind
Und ich Breche mir einen ab.
Hier Trifft der Spruch zu "Man sieht den Wald vor lauter Bäumen nicht mehr" -.-
Ich danke euch.
Wobei ich aber sagen kann, das mein Lösung ideal ist wenn die Daten nicht auf einen Server sind
Und ich Breche mir einen ab.
Hier Trifft der Spruch zu "Man sieht den Wald vor lauter Bäumen nicht mehr" -.-
Ich danke euch.