sql >> Databasteknik >  >> RDS >> Mysql

Bästa sättet att lagra en PHP-apps inställningar?

För en enda, liten, enkel webbplats, skulle jag bara lägga config i en PHP-fil. Håll det enkelt. PHP analyserar förmodligen inte något snabbare än det analyserar PHP. Om du använder APC, cachelagras den kompilerade bytekoden till och med - även om bytekoden sedan körs om för varje begäran. För en liten konfigurationsfil bör exekveringen av bytekoden ta mycket kort tid; för en mycket stor fil kan det ta lite längre tid.

För webbplatser med hög trafik med stora konfigurationer är det en bra idé att cachelagra din konfigurationsdata i APC (t.ex. som en enda array) -- åtminstone sparar du omkostnader för att faktiskt köra satserna i din config.php-fil. Framför allt gör Facebook detta. När du betjänar många förfrågningar per sekund är det uteslutet att trycka på disken för att läsa en konfigurationsfil (med parse_ini_file, en XML-tolkare, etc.) vid varje begäran.

För mitt nuvarande projekt är vi värd för många webbplatser, var och en med sin egen konfiguration. Varje plats hade både en databas och en konfigurationsfil; Men att se till att du alltid använder rätt konfigurationsfil med rätt databas kan bli en huvudvärk. Dessutom skulle ändringar kräva att saker ändras på två ställen - db och config. Att glömma det ena eller det andra orsakade alltid problem, och det hände alldeles för ofta.

Vi flyttade in konfigurationen till databasen, så att du omöjligt kan separera en db från dess korrekta konfiguration, och eventuella kodändringar kräver bara uppdatering av databasen. Data från konfigurationstabellen cachelagras också aggressivt i APC, så vi frågar dem sällan.

Så, för att sammanfatta:

  1. Liten webbplats :använd bara en config.php-fil
  2. Mycket stor webbplats :cache i APC
  3. Flera webbplatser :lagra konfiguration i databasen för att minska administrationskostnader; cache i APC för att minska databasträffar


  1. Specialtecken i MySQL-tabellnamn

  2. MySqli-kommandon osynkroniserade; du kan inte köra det här kommandot nu

  3. MaxScale Basic Management med MaxCtrl för MariaDB Cluster

  4. MySQL Välj flera VÄRDEN