sql >> Database >  >> RDS >> Mysql

De beste manier om de instellingen van een PHP-app op te slaan?

Voor een enkele, kleine, eenvoudige site zou ik config gewoon in een PHP-bestand plaatsen. Hou het simpel. PHP parseert waarschijnlijk niets sneller dan PHP. Als u APC gebruikt, wordt de gecompileerde bytecode zelfs in de cache opgeslagen, hoewel de bytecode vervolgens voor elk verzoek opnieuw wordt uitgevoerd. Voor een klein configuratiebestand zou deze bytecode-uitvoering heel weinig tijd in beslag nemen; voor een zeer groot bestand kan het wat langer duren.

Voor sites met veel verkeer met grote configuraties is het een goed idee om uw configuratiegegevens in APC (bijvoorbeeld als een enkele array) in de cache op te slaan -- u bespaart op zijn minst de overhead van het daadwerkelijk uitvoeren de instructies in uw config.php-bestand. Opvallend is dat Facebook dit doet. Als je veel verzoeken per seconde verwerkt, is het uit den boze om bij elk verzoek een configuratiebestand te lezen (met behulp van parse_ini_file, een XML-parser, enz.) op de schijf.

Voor mijn huidige project hosten we veel sites, elk met hun eigen configuratie. Elke site had zowel een database als een configuratiebestand; het kan echter lastig zijn om ervoor te zorgen dat u altijd het juiste configuratiebestand met de juiste database gebruikt. Bovendien zouden wijzigingen op twee plaatsen moeten worden gewijzigd:de db en de config. Het vergeten van het een of het ander veroorzaakte altijd problemen, en het gebeurde veel te vaak.

We hebben de configuratie naar de database verplaatst, zodat u onmogelijk een db kunt scheiden van de juiste configuratie, en voor eventuele codewijzigingen hoeft alleen de database te worden bijgewerkt. De gegevens uit de configuratietabel worden ook agressief gecached in APC, dus we vragen er zelden naar.

Dus, om samen te vatten:

  1. Kleine site :gebruik gewoon een config.php-bestand
  2. Zeer grote site :cache in APC
  3. Meerdere sites :sla de configuratie op in de database om de administratieve overhead te verminderen; cache in APC om databasehits te verminderen


  1. MySQL-query om unieke domeinen te tellen uit het veld e-mailadres

  2. ORA-1114 Datapatch uitvoeren

  3. Hoe kan ik een HTTP-verzoek indienen vanaf de SQL-server?

  4. Probleem met MySQL FULLTEXT-indexen