sql >> Database >  >> RDS >> Mysql

Persistent versus niet-persistent - Welke moet ik gebruiken?

Met blijvende verbindingen:

  • U kunt transactieverwerking niet effectief opbouwen
  • onmogelijke gebruikerssessies op dezelfde verbinding
  • app zijn niet schaalbaar. Na verloop van tijd kan het nodig zijn om het uit te breiden en het vereist beheer/opvolging van aanhoudende verbindingen
  • als het script, om wat voor reden dan ook, de vergrendeling op de tafel niet kon vrijgeven, dan zullen alle volgende scripts voor onbepaalde tijd worden geblokkeerd en moet de db-server opnieuw worden opgestart. Bij gebruik van transacties wordt het transactieblok ook doorgegeven aan het volgende script (met dezelfde verbinding) als de uitvoering van het script eindigt voordat het transactieblok is voltooid, enz.

Permanente verbindingen bieden niets wat u kunt doen met niet-permanente verbindingen.
Waarom zou u ze dan überhaupt gebruiken?
De enige mogelijke reden zijn prestaties, om ze te gebruiken als overhead voor het maken van een link naar uw SQL Server is hoog. En dit hangt van veel factoren af, zoals:

  • databasetype
  • of de MySQl-server zich op dezelfde machine bevindt en, zo niet, hoe ver? misschien buiten uw lokale netwerk/domein?
  • hoeveel overbelast door andere processen de machine waarop MySQL zit

Persistente verbindingen kunnen altijd worden vervangen door niet-persistente verbindingen. Het kan de prestaties van het script veranderen, maar niet het gedrag ervan!

Commerciële RDMS kan worden gelicentieerd door het aantal gelijktijdig geopende verbindingen en hier kunnen de blijvende verbindingen mislukken



  1. Hoe 1985-02-07T00:00:00.000Z (ISO8601) naar een datumwaarde in Oracle te converteren?

  2. Een index maken op een tijdstempel om de query te optimaliseren

  3. postgresql:INSERT INTO ... (SELECT * ...)

  4. Maak datum van dag-, maand-, jaarvelden in MySQL