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

Najlepszy sposób na przechowywanie ustawień aplikacji PHP?

W przypadku pojedynczej, małej, prostej witryny umieściłbym po prostu konfigurację w pliku PHP. Nie komplikuj. PHP prawdopodobnie nie parsuje niczego szybciej niż parsuje PHP. Jeśli używasz APC, skompilowany kod bajtowy jest nawet buforowany — chociaż kod bajtowy jest następnie ponownie wykonywany dla każdego żądania. W przypadku małego pliku konfiguracyjnego wykonanie tego kodu bajtowego powinno zająć bardzo mało czasu; w przypadku bardzo dużego pliku może to zająć trochę więcej czasu.

W przypadku witryn o dużym natężeniu ruchu z dużymi konfiguracjami, dobrym pomysłem jest buforowanie danych konfiguracyjnych w APC (np. jako pojedyncza tablica) — przynajmniej oszczędzasz koszty rzeczywistego wykonywania oświadczenia w pliku config.php. W szczególności Facebook to robi. Kiedy obsługujesz wiele żądań na sekundę, uderzenie dysku w celu odczytania pliku konfiguracyjnego (przy użyciu parse_ini_file, parsera XML itp.) przy każdym żądaniu nie wchodzi w rachubę.

W moim obecnym projekcie hostujemy wiele witryn, każda z własną konfiguracją. Każda witryna miała zarówno bazę danych, jak i plik konfiguracyjny; jednak upewnienie się, że zawsze używasz właściwego pliku konfiguracyjnego z odpowiednią bazą danych, może przysporzyć bólu głowy. Dodatkowo zmiany wymagałyby zmiany rzeczy w dwóch miejscach — w db i config. Zapomnienie jednego lub drugiego zawsze powodowało problemy i zdarzało się to zbyt często.

Przenieśliśmy konfigurację do bazy danych, więc nie można oddzielić bazy danych od jej poprawnej konfiguracji, a wszelkie zmiany w kodzie wymagają jedynie aktualizacji bazy danych. Dane z tabeli konfiguracyjnej są również agresywnie buforowane w APC, więc rzadko o nie pytamy.

Podsumowując:

  1. Mała witryna :po prostu użyj pliku config.php
  2. Bardzo duża witryna :pamięć podręczna w APC
  3. Wiele witryn :przechowuj konfigurację w bazie danych, aby zmniejszyć obciążenie administracyjne; pamięć podręczna w APC w celu zmniejszenia liczby trafień w bazie danych


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. lista wyników w mysql z tej samej tabeli

  2. Symulacja polecenia ORDER BY FIELD() MySQL w Postgresql

  3. Dodaj klucz obcy do istniejącej tabeli

  4. Jak sprawić, by mysql MEMORY ENGINE przechowywał więcej danych?

  5. MySQL przy aktualizacji zduplikowanych kluczy