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

Bedste praksis til at optimere LAMP-websteder for hastighed?

Her er et par personlige must-dos, som jeg altid sætter op i mine LAMP-applikationer.

  • Installer mod_deflate til apache, og brug ikke PHP's gzip-handlere. mod_deflate vil tillade dig at komprimere statisk indhold, som javascript/css/static html, såvel som det sædvanlige dynamiske PHP-output, og det er en ting mindre, du skal bekymre dig om i din kode.

  • Vær forsigtig med .htaccess-filer! Aktivering af .htaccess-filer for mapper i din app betyder, at Apache skal scanne filsystemet konstant og lede efter .htaccess-direktiver. Det er langt bedre at sætte direktiver inde i hovedkonfigurationen eller en vhost-konfiguration, hvor de indlæses. Hver gang du kan slippe af med en adgangsfil på biblioteksniveau ved at flytte den til en hovedkonfigurationsfil, sparer du tid for diskadgang.

  • Forbered dit programs databaselag til at bruge en forbindelsesadministrator af en slags (jeg bruger en Singleton-applikationer). Det er ikke særlig svært at gøre, og at reducere antallet af databaseforbindelser, som din applikation åbner, sparer ressourcer.

  • Hvis du tror, ​​at din applikation vil opleve betydelig belastning, kan memcached udføre mirakler. Husk dette, mens du skriver din kode... måske en dag i stedet for at skabe objekter på fluen, får du dem fra memcached. Lidt forudseenhed vil gøre implementeringen smertefri.

  • Når din app er oppe at køre, skal du indstille MySQL's langsomme forespørgselstid til et lille tal og overvåge den langsomme forespørgsel omhyggeligt. Dette vil vise dig, hvor dine problemforespørgsler kommer fra, og give dig mulighed for at optimere dine forespørgsler og indekser, før de bliver et problem.

  • For seriøse ydelsesjusteringer, vil du ønske at kompilere PHP fra kilden. Installation fra en pakke installerer en masse biblioteker, som du måske aldrig bruger. Da PHP-miljøer indlæses i hver forekomst af en Apache-tråd, bliver selv en 5MB hukommelsesoverhead fra ekstra biblioteker hurtigt til 250MB tabt hukommelse, når der ikke er 50 Apache-tråde. Jeg holder en liste over min standard ./configure linje, jeg bruger, når jeg bygger PHP her , og jeg finder det passer til de fleste af mine applikationer. Ulempen er, at hvis du ender med at få brug for et bibliotek, skal du omkompilere PHP for at få det. Analyser din kode, og test den i et udviklingsmiljø for at sikre, at du har alt, hvad du har brug for.

  • Formindsk dit Javascript.

  • Vær forberedt på at flytte statisk indhold, såsom billeder og video, til en ikke-dynamisk webserver. Skriv din kode, så alle URL'er til billeder og video nemt kan konfigureres til at pege på en anden server i fremtiden. En webserver, der er optimeret til statisk indhold, kan nemt betjene 10 eller endda hundredvis af gange hurtigere end en dynamisk indholdsserver.

Det er det, jeg kan komme i tanke om oven i hovedet. Når du googler efter bedste PHP-praksis, vil du også finde en masse tips om, hvordan du skriver hurtigere/bedre kode (såsom:echo er hurtigere end print ).



  1. MariaDB JSON_ARRAYAGG() Forklaret

  2. Hvordan konfigurerer jeg HikariCP til postgresql?

  3. Hvad er Check Constraint i SQL Server - SQL Server / TSQL Tutorial Del 82

  4. MySQL-deltagelsesforespørgsel ved hjælp af like?