Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Czy zagnieżdżone SP MySql może być wąskim gardłem?

Tak, to możliwe. Nie mamy pomiarów tego, jak długo to trwa, ale można oczekiwać, że tabela tymczasowa spowoduje pewne obciążenie podczas jej tworzenia, zapisywania w niej danych, wysyłania zapytań, a następnie usuwania. Jak często jest to wywoływane?

Ponadto, procedury składowane MySQL są ogólnie znane jako dość nieefektywne. Nie zachowują skompilowanej formy procedury, tak jak w przypadku Oracle i innych marek RDBMS. Innymi słowy, każda sesja ponownie kompiluje każdą procedurę, której używa przy pierwszym wywołaniu.

Najpierw sugerowałbym wyeliminowanie tabeli tymczasowej. Po prostu zaprojektuj zagnieżdżoną procedurę, aby zbudować prawidłowe zapytanie SQL jako ciąg i zwróć ten ciąg. Następnie zewnętrzna procedura wykonuje zapytanie jest jego wynikiem. Powinieneś być w stanie pominąć tworzenie/upuszczanie tabeli tymczasowej i wstawianie do tabeli tymczasowej.

Po drugie, gdybym projektował tę aplikację, nie widzę potrzeby stosowania żadnej z procedur składowanych. Zalecam napisanie kodu, aby zbudować właściwe zapytanie SQL w Twojej aplikacji, a następnie wykonanie tego zapytania z aplikacji.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Odejmij miesiąc i dzień mysql

  2. Wiele instrukcji select w pojedynczym zapytaniu

  3. Zoptymalizuj zapytanie MySQL, aby uniknąć używania where; Korzystanie tymczasowe; Korzystanie z sortowania plików

  4. Włącz zdalny dostęp do bazy danych MySQL

  5. mysqli_real_escape_string i problem z podwójnymi cudzysłowami