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

Korzystanie z trwałych połączeń PHP-MySQL do prowadzenia bloga WordPress

Podczas łączenia się z bazą danych MySQL, blog WordPress oparty na skryptach PHP domyślnie użyje nietrwałego połączenia. Oznacza to, że WordPress spowoduje wygenerowanie przez PHP nowego połączenia z serwerem MySQL dla każdego dynamicznego żądania strony, a następnie zamknie połączenie z bazą danych po zakończeniu tworzenia strony internetowej. Powtarzające się otwieranie i zamykanie połączeń MySQL powoduje koszty ogólne i zużywa cenne zasoby procesora, pamięci i systemu na hoście internetowym.

Używanie trwałego połączenia do łączenia się z serwerem bazy danych MySQL nie zawsze jest dobrym rozwiązaniem. Każde połączenie zajmuje zasoby, w tym pamięć, bufory, pamięć podręczną tabel lub wątków wewnętrznie w MySQL i gniazdach, otwarte pliki lub aktywność IO na poziomie systemu operacyjnego. Tak więc, gdy wiele trwałych połączeń jest otwieranych, ale nie zamykanych po zakończeniu transakcji, zasoby w systemie mogą wyczerpać się i obniżyć wydajność serwera WWW lub w najgorszym przypadku spowodować awarię HTTP. Ponadto, jeśli trwałe połączenie zostanie zatrzymane, nieaktywne lub nieaktywne lub nie będzie już używane, nie zostanie ono zakończone, a serwer MySQL zamknie je tylko po około 28800 sekundach (8 godzin) w celu zwolnienia zasobu zajmowanego przez połączenie, chyba że zmienił parametry limitu czasu w plikach konfiguracyjnych my.cnf. Te kilka czynników może powodować problemy, takie jak odmawianie przez MySQL nowych połączeń z bazą danych lub powolny serwer, jeśli aplikacje nie obsługują właściwie trwałych połączeń.

Dlatego jeśli nie jesteś doświadczonym webmasterem, nie próbuj zmieniać WordPressa, aby używał trwałych połączeń.

Jednak dla blogerów, którzy mają zajęty i duży blog i napotykają ograniczenia w aktualizowaniu specyfikacji systemu hosta internetowego i nie chcą używać statycznej wtyczki do buforowania stron, takiej jak WP-Cache, trwałe połączenie jest dostępną opcją dostrojenia i optymalizacji serwera WWW aby sprawdzić, czy wyświetlanie strony internetowej może być szybsze. Połączenie trwałe pozwala na jednokrotne otwarcie połączenia i nie zostanie zamknięte po zakończeniu wykonywania skryptu. Zamiast tego łącze jest przechowywane w puli i pozostanie otwarte do wykorzystania w przyszłości. Dzięki temu korzystanie z trwałych połączeń wyeliminuje proces otwierania i zamykania połączenia. Pośrednio zmniejszy to obciążenie serwera związane z połączeniem MySQL, takie jak uwierzytelnianie w celu ustanowienia połączenia tam, gdzie jest potrzebne tylko raz, oszczędzając dodatkowy ruch sieciowy i zasoby używane do obsługi dodatkowego połączenia. Poza tym mogą istnieć pewne pamięci podręczne na poziomie połączenia, które należy wypełnić, aby zapewnić odpowiednią wydajność i potencjalnie zmniejszyć liczbę połączeń z bazą danych.

Domyślnie WordPress używa funkcji mysql_connect(), która nawiązuje nowe połączenie z bazą danych na każdej stronie. Funkcja trwałego połączenia będzie wymagać funkcji mysql_pconnect(), która używa dokładnie tego samego interfejsu API, ale ma wbudowaną pulę połączeń, aby utrzymywać połączenia między żądaniami. Aby więc przełączyć się na używanie trwałego połączenia do uruchamiania WordPressa, funkcja mysql_connect() musi zostać zastąpiona mysql_pconnect().

Aby włączyć i używać trwałych połączeń z WordPress, po prostu zaloguj się do swojego hosta internetowego za pomocą SSH (lub niezabezpieczonego Telnetu) i zmień katalog na katalog domowy webroot, w którym jest zainstalowany blog WordPress.

Znajdź i edytuj wp-config.php pliku i dodaj następujące wiersze (lub zmień na następujące wartości, jeśli stałe już istnieją):

define('USE_PCONNECT', true);
define('WP_CACHE', false);

WordPress i PHP (o ile nie wyłączysz mysql.allow_persistent w PHP.INI) natychmiast użyją trwałych połączeń do połączenia z bazą danych MySQL. Warto wypróbować, które ustawienie jest najlepsze dla Twojego środowiska.

Poniższe kroki są również wykonalne, ale obejmują zhakowanie głównego pliku WordPress, a zatem nie są zalecane i pozostawione w tym artykule tylko w celach informacyjnych.

Zmień katalog na wp-includes informator. Wewnątrz katalogu wp-includes znajduje się wp-db.php plik. Użyj dowolnego edytora tekstu, takiego jak vi, do edycji wp-db.php. Wyszukaj lub zlokalizuj funkcję mysql_connect (lub @mysql_connect ). Istnieje tylko jedna instancja mysql_connect. Po prostu zmień mysql_connect na mysql_pconnect , a następnie zapisz i zamknij wp-db.php.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Przykłady LOCALTIME – MySQL

  2. Zabezpieczanie serwera MySQL

  3. Jak uzyskać każdy N-ty wiersz w MySQL

  4. Jak sformatować liczby jako walutę w MySQL?

  5. Jak wywołać procedurę składowaną MySQL w Pythonie?