[MySQL] Meerdere INSERTs in één query?

Pagina: 1
Acties:

  • Jeeeroen
  • Registratie: Juni 2004
  • Niet online
Ik kreeg net de volgende foutmelding: User 'xxxxx' has exceeded the 'max_questions' resource (current value: 100000). Het maximum aantal queries per uur was dus overschreden. Oorzaak was een PHP-script dat veel INSERT-queries na elkaar uitvoerde. Ik ben op zoek gegaan naar een oplossing hiervoor en heb iets gevonden, maar ik weet niet zeker of het werkt (testen gaat niet, want als het niet werkt, ligt mijn website er weer een uur uit).

Ik dacht eraan in plaats van de volgende code:
code:
1
2
3
INSERT INTO `Tabel` VALUES (1, 'A');
INSERT INTO `Tabel` VALUES (2, 'B');
INSERT INTO `Tabel` VALUES (3, 'C');


De volgende code te gebruiken:
code:
1
2
3
INSERT INTO `Tabel` VALUES (1, 'A'),
(2, 'B'),
(3, 'C');


Mijn vraag is nu: 'Geldt' deze laatste code als één of als drie queries?

Mocht de code als één query worden gerekend, dan is dit dus de oplossing. Zo niet, weet iemand dan iets anders om het probleem op te lossen? Er moet een redelijk grote MySQL-tabel via PHP van de ene naar de andere server worden verstuurd (en er zijn geen andere mogelijkheden).

Bedankt!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Dat laatste is, als het werkt, maar één query. Waarom zou je het trouwens niet kunnen testen? Je kan toch een testtabel maken en die query die hierboven staat gewoon uitvoeren?

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • Jeeeroen
  • Registratie: Juni 2004
  • Niet online
Bedankt, dan werkt dat dus.

Als ik zou willen testen of het één query is of drie queries zijn, moet ik de code zó vaak uitvoeren tot ik de melding krijg dat het limiet is overschreden. Dan kan ik het pas berekenen. Of is er een andere manier om er door te testen achter te komen of het één query is of drie queries zijn?

  • Scott
  • Registratie: December 2004
  • Laatst online: 06:06

Scott

Ik ben, dus ik tweak

Je kunt iets met de tijd doen, meten voor die 'ene' query en opnieuw meten na die query. Datzelfde doe je met drie queries: je start het meten voordat je de eerste query uitvoert, je stopt de 'timer' na de laatste query. Dan vergelijk je de twee gemeten tijden. Als die (ongeveer) hetzelfde zijn, dan telt die ene query voor drie, als de drie queries langzamer gaan, dan telt die ene query dus ook daadwerkelijk voor 1 :)

[ Voor 37% gewijzigd door Scott op 12-03-2005 22:06 ]