sql >> Database teknologi >  >> RDS >> Mysql

Kan MySql indlejret SP være en flaskehals?

Ja, det er muligt. Vi har ikke målinger af, hvor lang tid det tager, men man kan forvente, at en temp-tabel forårsager nogle overhead, når du opretter den, skriver data ind i den, forespørger efter den og så dropper den. Hvor ofte bliver dette kaldt?

Også MySQL's lagrede procedurer er generelt kendt for at være ret ineffektive. De beholder ikke den kompilerede form af proceduren, som de gør i Oracle og andre RDBMS-mærker. Med andre ord, hver session omkompilerer hver procedure, den bruger, første gang den kaldes.

For det første vil jeg foreslå at fjerne temp-tabellen. Du skal bare designe den indlejrede procedure for at bygge den rigtige SQL-forespørgsel som en streng, og returnere den streng. Derefter udfører den ydre procedure forespørgslen er dens resultat. Du burde være i stand til at springe over oprettelse/slip af temp-tabellen og indsættelsen i temp-tabellen.

For det andet, hvis jeg designede denne app, ser jeg ikke noget behov for nogen af ​​de lagrede procedurer. Jeg vil anbefale at skrive kode for at bygge den rigtige SQL-forespørgsel i din applikation, og derefter bare udføre den forespørgsel fra applikationen.



  1. At skrive en PHP-fil til at læse fra CSV og udføre SQL Query

  2. SQL Server rekursiv selvtilslutning

  3. Hvordan får man en mysql-forespørgsel til konstant at opdatere i PHP?

  4. Forståelse af databaseniveausorteringen og virkningen af ​​at ændre den til en database