Du bör inte pinga MySQL före en fråga av tre anledningar:
- 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.
- Din fråga kan misslyckas även om servern är uppe.
- 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.