sql >> Databasteknik >  >> RDS >> Mysql

Ska jag pinga mysql-servern före varje fråga?

Du bör inte pinga MySQL före en fråga av tre anledningar:

  1. Det är inte ett tillförlitligt sätt att kontrollera att servern kommer att vara uppe när du försöker köra din fråga, det kan mycket väl gå ner under tiden mellan ping-svaret och frågan.
  2. Din fråga kan misslyckas även om servern är uppe.
  3. I takt med att mängden trafik till din webbplats skalas upp kommer du att lägga till mycket extra omkostnader till databasen. Det är inte ovanligt i företagsappar som har använt den här metoden för att se en enorm mängd av databasens resurser slösas bort på pingar.

Det bästa sättet att hantera databasanslutningar är felhantering (försök/fånga), försök och transaktioner.

Mer om detta på MySQL-prestandabloggen:Kontrollerar efter en live databasanslutning anses vara skadlig

I det blogginlägget ser du att 73 % av belastningen på den instansen av MySQL orsakades av applikationer som kontrollerade om DB var uppe.



  1. Infoga fråga för att infoga rader i MySQL

  2. PHP &MySQL:mysqli_num_rows() förväntar sig att parameter 1 är mysqli_result, boolean given

  3. PostgreSQL användarbehörigheter

  4. Hur Width_Bucket() fungerar i PostgreSQL