![]() |
[PHP] MySQL multi database connectie..
Ik heb een script dat queries draait naar db server A.
Maar uiteindelijk zullen de queries verdeeld zijn over server A en server B (soort van replicatie, maar dan anders ;)). Hoe kan ik dit met PHP regelen dat ik met meerdere db's kan connecten? Of moet ik iedere keer opnieuw bij iedere query opnieuw toegang maken dmw mysql_connect? |
Gewoon je result van mysql_connect opslaan in twee verschillende variabelen? Als je tenminste weet welke queries je op welke server wilt uitvoeren.
|
Citaat:
Bedankt :) |
mysql_query($query); werkt als je een database_connect($database, $..); hebt gedaan, maar je kan dus ook mysql_query($query, $db1); en mysql_query($query, $db2); doen type ik met mijn brakke hoofd.
|
Zoiets heb ik dus ook egdaan..
$db1 = mysql_connect(); $db2 = mysql_connect(); mysql_query("", $db1); mysql_query("", $db2); |
Server A voert het script uit over de database servers B en C.
Heb als test even een kleinere database gepakt van 11 MB.. Duurt 2 minuten om uit te voeren ofzo :p |
Ah.
Is dat goed of slecht? |
Het is een eenmalige conversie, dus het is verder niet erg..
Maar een script dat 2,5 minuut doet om 'wat' queries te parsen... (Ok, heeeel veel queries in dit geval ;)) |
2 minuten is ganz schnell!
|
Citaat:
Of werken met 'parameterized queries' wanneer de query hetzelfde is alleen de voorwaarde veranderd (x = 1 -> x = 2 -> x = 3; niet x = 1 -> y = 2 -> z = 3) zodat de optimizer de query in cache kan bewaren, het executie plan in opnieuw hoeft uit te rekenen en de query niet opnieuw hoeft te compileren. (jaaaaa, ik ben ook eens bezig geweest met database) |
Citaat:
Maar reken op een stuk of 1000 (wat makkelijk kan oplopen tot 10000). |
Citaat:
Alleen ik moet voor een hoop queries de auto_inc id terug hebben omdat de id's veranderen en dus opnieuw verwerkt moeten worden... Dan gaat dat helaas niet op... |
Citaat:
Daar ik je queries niet ken en je conversiescript kan ik er verder weinig over zeggen :) |
Ik laat wel weten als het resultaat er is... :)
(En waar het nou eigenlijk allemaal over ging) Bijkoemdn nadeel is trouwens dat het om een MySQL3 servers gaat, en niet MySQL4... |
Nog een tip om het geheel wat sneller te maken:
haal alle indexen, constraints e.d. eraf en maak auto inc velden niet auto inc. Dit maakt de conversie wel een stukje complexer (aangezien je nu zelf allemaal dingen moet controleren) maar de database hoeft minder bij te houden. Zeker bij veel records zal je dit goed merken. klein voorbeeldje bij een index op een kolom bij/na een insert moet de database:
En dat voor iedere insert. Sneller is dus de index eraf halen, dan alles inserten en daarna de index er op zetten. Dan kan de database namelijk de hele tabel in één keer door. |
Alle tijden zijn GMT +1. Het is nu 19:16. |
Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.