sql >> Database teknologi >  >> RDS >> Mysql

Bedste måde at gemme en PHP-apps indstillinger?

For et enkelt, lille, simpelt websted, ville jeg bare sætte config i en PHP-fil. Hold det simpelt. PHP parser sandsynligvis ikke noget hurtigere, end det parser PHP. Hvis du bruger APC, bliver den kompilerede bytekode endda cachelagret -- selvom bytekoden derefter udføres igen for hver anmodning. For en lille konfigurationsfil bør denne bytekode-udførelse tage meget kort tid; for en meget stor fil kan det tage lidt længere tid.

For websteder med stor trafik med store konfigurationer er cachelagring af dine konfigurationsdata i APC (f.eks. som et enkelt array) en god idé - du sparer i det mindste omkostningerne ved faktisk eksekvering sætningerne i din config.php fil. Især facebook gør dette. Når du betjener mange anmodninger i sekundet, er det udelukket at trykke på disken for at læse en konfigurationsfil (ved at bruge parse_ini_file, en XML-parser osv.) på hver anmodning.

Til mit nuværende projekt hoster vi mange websteder, hver med deres egen konfiguration. Hvert websted havde både en database og en konfigurationsfil; Det kan dog blive en hovedpine at sikre, at du altid bruger den rigtige konfigurationsfil med den rigtige database. Derudover vil ændringer kræve, at tingene ændres to steder - db'en og konfigurationen. At glemme det ene eller det andet gav altid problemer, og det skete alt for ofte.

Vi flyttede config ind i databasen, så du umuligt kan adskille en db fra dens korrekte config, og eventuelle kodeændringer kræver kun opdatering af databasen. Dataene fra konfigurationstabellen er også aggressivt cachelagret i APC, så vi forespørger sjældent efter dem.

Så for at opsummere:

  1. Lille websted :brug blot en config.php-fil
  2. Meget stort websted :cache i APC
  3. Flere websteder :gem konfiguration i databasen for at reducere administrationsomkostninger; cache i APC for at reducere databasehits


  1. Konverter månedsnummer til månedsnavnfunktion i SQL

  2. Hvordan kan jeg vælge lignende rækker i to forskellige tabeller i MySQL (er det muligt?)

  3. Sådan genereres script for at aktivere alle fremmednøglebegrænsninger i SQL Server-databasen - SQL Server / TSQL vejledning del 78

  4. Lagring af indholdet af et PHP-array i en MySQL-database