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

Najlepsze praktyki dotyczące optymalizacji witryn LAMP pod kątem szybkości?

Oto kilka osobistych rzeczy, które zawsze ustawiam w moich aplikacjach LAMP.

  • Zainstaluj mod_deflate dla apache i nie używaj obsługi gzip PHP.>

  • Uważaj na pliki .htaccess! Włączenie plików .htaccess dla katalogów w Twojej aplikacji oznacza, że ​​Apache musi stale skanować system plików w poszukiwaniu katalogów .htaccess. O wiele lepiej jest umieścić dyrektywy w konfiguracji głównej lub konfiguracji vhost, gdzie są one ładowane raz. Za każdym razem, gdy możesz pozbyć się pliku dostępu na poziomie katalogu, przenosząc go do głównego pliku konfiguracyjnego, oszczędzasz czas dostępu do dysku.

  • Przygotuj warstwę bazodanową swojej aplikacji do korzystania z pewnego rodzaju menedżera połączeń (ja używam Singletona w większości aplikacji). Nie jest to trudne, a zmniejszenie liczby połączeń z bazą danych otwieranych przez aplikację pozwala zaoszczędzić zasoby.

  • Jeśli uważasz, że Twoja aplikacja będzie znacznie obciążona, pamięć podręczna może zdziałać cuda. Miej to na uwadze podczas pisania kodu... być może pewnego dnia zamiast tworzyć obiekty w locie, będziesz je pobierał z pamięci podręcznej. Trochę przewidywania sprawi, że wdrożenie będzie bezbolesne.

  • Po uruchomieniu aplikacji ustaw czas wolnego zapytania MySQL na małą liczbę i pilnie monitoruj wolne zapytania. To pokaże Ci, skąd pochodzą Twoje problematyczne zapytania, i pozwoli Ci zoptymalizować Twoje zapytania i indeksy, zanim staną się problemem.

  • W przypadku poważnych poprawek wydajności, będziesz chciał skompilować PHP ze źródeł. Instalacja z pakietu instaluje wiele bibliotek, których możesz nigdy nie używać. Ponieważ środowiska PHP są ładowane do każdej instancji wątku Apache, nawet 5 MB narzutu pamięci z dodatkowych bibliotek szybko staje się 250 MB utraconej pamięci, gdy nie istnieje 50 wątków Apache. Prowadzę listę moich standardowych linii ./configure, których używam przy tworzeniu PHP tutaj i uważam, że pasuje do większości moich aplikacji. Minusem jest to, że jeśli w końcu potrzebujesz biblioteki, musisz przekompilować PHP, aby ją uzyskać. Przeanalizuj swój kod i przetestuj go w środowisku deweloperskim, aby upewnić się, że masz wszystko, czego potrzebujesz.

  • Zminimalizuj swój Javascript.

  • Przygotuj się na przeniesienie statycznej zawartości, takiej jak obrazy i wideo, na niedynamiczny serwer sieciowy. Napisz swój kod, aby wszystkie adresy URL obrazów i filmów można było łatwo skonfigurować tak, aby wskazywały inny serwer w przyszłości. Serwer Aweb zoptymalizowany pod kątem zawartości statycznej może z łatwością obsługiwać dziesiątki lub nawet setki razy szybciej niż serwer zawartości dynamicznej.

To właśnie przychodzi mi do głowy z czubka głowy. Przeglądając najlepsze praktyki PHP, znajdziesz również wiele wskazówek, jak pisać szybszy/lepszy kod (takie jak:echo jest szybszy niż print ).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Railsy:Jak podzielić zapytanie zapisu/odczytu na bazę danych master/slave

  2. Wyślij ArrayList z Androida do php MySQL

  3. Wiele tabel lub wierszy, która z nich jest bardziej wydajna w SQL?

  4. MySQL - Wybieranie danych z wielu tabel o tej samej strukturze, ale o różnych danych

  5. Błąd składni MySQL podczas wykonywania zapytania SQL