Optymalizacja w PHP i MySQL. Część 1: wprowadzenie teoretyczne i podstawowe zasady
Język PHP wraz z bazą danych MySQL są nadal najczęściej używanymi rozwiązaniami przy tworzeniu aplikacji webowych. Wzrost zainteresowania projektem wymusza często poprawę istniejącego kodu, w celu uzyskania lepszej wydajności oferowanej usługi. Nie wystarczy wtedy podstawowa umiejętność pisania działającego kodu, ale także znajomość tworzenia bardziej optymalnych rozwiązań.
Artykuł ten jest pierwszym z naszej nowej serii poświęconej optymalizacji. Znajdziecie tu trochę teorii i ogólnych zasad, jakimi należy kierować się przy poprawianiu własnego kodu. Celem całej linii tekstów jest nakreślenie osobom piszących w PHP i korzystających z możliwości MySQL reguł oraz praktycznych przykładów bardziej wydajnych metod programowania.
Definicja optymalizacji
Optymalizacją w informatyce nazywamy ciąg działań, dzięki którym osiągamy poprawę wydajności danego programu. Chrakteryzuje się to przede wszystkim zmniejszeniem użycia pamięci maszyny, na której się on znajduje oraz zwiększeniem szybkości działania samego programu.
Zwiększenie wydajności można uzyskać na kilku różnych płaszczyznach, poczynając od modernizacji i uproszczenia działań matematycznych lub fizycznych w stosowanych algorytmach, przechodząc przez wymianę użytych w aplikacji funkcji, konstrukcji językowych oraz kwarend, a kończąc na konstruowaniu działań w kilku językach, poprzez zastosowanie programowania hybrydowego.
Na płaszczyźnie tworzenia aplikacji internetowych kod można także dostosowywać pod kątem zgodności ze standardami oraz wyszukiwania przez wyszukiwarki internetowe, co można podpiąć pod kategorię pozycjonowania.
Rysunek 1: przykładowy proces optymalizacji dla wyszukiwarek internetowych.
Do ostatniego kryterium należy także inny typ optymalizacji - treści. Dla użytkownika danej strony jest on o tyle ważny, że zwiększa przystępność znajdujących się na niej zasobów.
Dlaczego warto optymalizować już w fazie planowania?
Jeżeli przeznaczeniem nowo budowanego serwisu jest dłuższy, a nawet komercyjny byt, warto planować kwestie wydajnościowe już we wstępnej fazie projektowania. Nie zaoszczędzi to wszystkich, przyszłych poprawek w kodzie, ale może pozwolić na uniknięcie potrzeby modyfikacji całego lub większych części skryptu.
Przede wszystkim należy przemyśleć to, jaki jest cel tworzonej przez nas usługi, do kogo ją kierujemy i jakie będziemy mieli wobec niej oczekiwania. Odpowiedzi na te pytania pozwolą na wstępne ocenienie, jakiego typu serwer będzie potrzebny, jakie oprogramowanie będzie niezbędne do pracy, czy jakie obciążenie będzie mogła generować strona - i to ze sporym wyprzedzeniem czasowym. Warto więc poświęcić trochę czasu na trzeźwą analizę celów, możliwości i potrzeb.
Rysunek 2: techniczny proces związany z optymalizacją w projektowaniu.
Na co warto więć zwrócić uwagę, kalkulując wymagania? Przy dużych rozwiązaniach - na przykład na alokowanie danych względem oczekiwań odnośnie do generowanego obciążenia. W takich przypadkach stworzony kod PHP może być tylko małą przyczyną tworzonego problemu, a co za tym idzie - należy skupić się na zapytaniach SQL. Można więć wysunąć wniosek, że czasem skorzystanie z metody zapisu do plików może być bardziej wydajne niż operowanie na jakiejkolwiek bazie danych.
«poprzednia 1 2 3 4 następna »
Komentarze
Aby dodać komentarz, musisz podać swój nick, treść komentarza oraz poprawnie przepisać oba słowa z obrazka
(słowa muszą być rozdzielone spacją).
W treści komentarza można używać języka formatowania BBcode.
Popularne
Nazwa padła ofiarą szantażystów, inni polscy hosterzy też zagrożeni?
22
Darmowy Internet od Aero2. Jak go zdobyć i jakie są prawdziwe koszta? Instrukcja krok po kroku
11
Programowanie w środowisku Android – wprowadzenie do projektowania aplikacji dla urządzeń mobilnych
17
Premiera Diablo 3 wzbudziła dyskusję na temat gier, które zawsze chcą być online
19
Nowy problem z Windows 8: bootuje się za szybko
10
Amerykańscy rodzice straszeni „e-narkotykami” dostępnymi w Sieci
21
Anonymous upubliczniają 1,7 GB danych wykradzionych Departamentowi Sprawiedliwości USA
12
Blueseed: libertariańska sztuczna wyspa przyciągnęła już ponad sto startupów z całego świata
8
Rewolucja w Firefoksie, nowa łatka czterokrotnie ograniczyła zużycie pamięci
20
Darmowy Internet od Aero2. Jak go zdobyć i jakie są prawdziwe koszta? Instrukcja krok po kroku
11
CVDazzle: makijaż jest w stanie pokonać automatyczne systemy ulicznego monitoringu
3
Programowanie w środowisku Android – wprowadzenie do projektowania aplikacji dla urządzeń mobilnych
17
Ubuntu 12.04 LTS już dostępny: stabilna dystrybucja na następne pięć lat?
28
Zostań webmasterem polskiego rządu, zarobisz na komfortowe życie dla siebie i swojej rodziny
33
Społeczność
boemund_2 Bardzo dobrze. Na dzień dzisiejszy posiadacz VS2010 za prawie 3 tysiaki...
Fox @Wszerad
W obydwu przypadkach piszesz jednak o filmach przyrodniczych ;)
WebDev Uważam, że lepiej pisać aplikacje okienkowe stosując przenośne biblioteki...
Daresh A ja na pulpicie nie mam żadnych ikon i nie potrzebuję takich narzędzi :)
buahahaha @xyz: jak będzie wybór między MS ograniczającym wybór a Apple...
xyz @bartez® : Uważasz, że Apple nie ogranicza programistów? buahahaha
anga star za droga ludzie wy myślicie!?Jestem 4 klasistką rodzice się nigdy nie...
- Najdmen.pl: Konta www z wyłączonym licznikiem transferu od IONIC.pl (1)
- 2BE.PL: [Oferta] Promocja jak złoto w 2BE.PL (1)
- gardius: Dobra hurtownia sportowa (1)
- gardius: Tanie książki gdzie warto kupować? (1)
- Najdmen.pl: PROMOCJA, 500 DOMEN .EU ZA 1 PLN NETTO ! (1)
- VMLine: [Oferta] Serwery VPS Xen-HVM/OpenVZ z darmową administracją (2)
- Marek: Generowanie PDFa (2)
Polecane książki
Praca
Czytaj Webhosting
Chcesz być na bieżąco z naszymi informacjami? Zapisz się na Newsletter.
Zarejestruj domenę
Sprawdź dostępność swojej domeny:
| .pl: | 0 zł | .com: | 19.90 zł | |
|---|---|---|---|---|
| .com.pl: | 0 zł | .eu: | 19.90 zł |











#1 sokzzuka 2010-06-21 13:55:46 0
IP: 77.236.0.[...] Mozilla/5.0 (Windows; U; Windows NT 6.1; pl; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3
#2 dAREuS® 2010-06-21 14:13:26 0
IP: 188.121.11.[...] Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.70 Safari/533.4
#3 Jacek Smolak® 2010-06-21 14:32:02 0
IP: 81.161.199.[...] Mozilla/5.0 (Windows; U; Windows NT 6.0; pl; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 ( .NET CLR 3.5.30729)
#4 m1chu® 2010-06-21 18:24:58 0
IP: 85.221.146.[...] Mozilla/5.0 (Windows; U; Windows NT 6.1; pl; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3
#5 Czytacz 2010-06-22 01:05:16 0
IP: 78.8.5.[...] Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3
#6 melkorm® 2010-06-22 01:12:05 0
IP: 87.207.214.[...] Opera/9.80 (Windows NT 6.1; U; pl) Presto/2.5.29 Version/10.60
#7 Jacek Smolak® 2010-06-22 09:45:06 0
IP: 81.161.199.[...] Mozilla/5.0 (Windows; U; Windows NT 6.0; pl; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 ( .NET CLR 3.5.30729)
#8 Jacek Smolak® 2010-06-22 09:51:22 0
IP: 81.161.199.[...] Mozilla/5.0 (Windows; U; Windows NT 6.0; pl; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 ( .NET CLR 3.5.30729)
#9 m1chu® 2010-06-22 10:06:41 0
IP: 85.221.146.[...] Mozilla/5.0 (Windows; U; Windows NT 6.1; pl; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3
#10 beatnut 2010-06-24 11:11:09 0
IP: 79.188.1.[...] Opera/9.80 (X11; Linux i686; U; pl) Presto/2.6.30 Version/10.60
#11 ararar 2010-06-24 16:54:12 0
IP: 217.173.178.[...] Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.2.4) Gecko/20100611 Firefox/3.6.4 ( .NET CLR 3.5.30729)
#12 beatnut 2010-06-24 19:14:11 0
IP: 193.93.91.[...] Opera/10.60 (X11; Linux x86_64; U; pl) Presto/2.6.30 Version/10.60
#13 singollo 2010-06-25 11:03:14 0
IP: 78.8.147.[...] Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/533.4 SUSE/5.0.372.0-1.1 (KHTML, like Gecko) Chrome/5.0.372.0 Safari/533.4
#14 ararar 2010-06-25 14:17:31 0
IP: 217.173.178.[...] Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.2.4) Gecko/20100611 Firefox/3.6.4 ( .NET CLR 3.5.30729)
#15 cojack 2010-07-05 18:15:56 0
IP: 89.79.56.[...] Mozilla/5.0 (Windows; U; Windows NT 6.1; pl; rv:1.9.2.6) Gecko/20100625 Firefox/3.6.6
#16 singollo 2010-07-06 14:30:29 0
IP: 78.8.147.[...] Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.9.1.9) Gecko/20100317 SUSE/3.5.9-0.1.1 Firefox/3.5.9
#17 lukasz89 2010-07-06 22:39:12 0
IP: 83.7.179.[...] Mozilla/5.0 (Windows; U; Windows NT 6.1; pl; rv:1.9.2.6) Gecko/20100625 Firefox/3.6.6
#18 ararar 2010-07-07 07:16:41 0
IP: 217.173.178.[...] Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.2.6) Gecko/20100625 Firefox/3.6.6 ( .NET CLR 3.5.30729)