Archive for the ‘Optymalizacja’ Category

[krótko] preg_split – multi explode

poniedziałek, Wrzesień 14th, 2009

Rozwijając mój serwis pensje.net trafiłem na ciekawy problem. Otóż tworząc kreator raportów chciałem stworzyć funkcjonalność, która rozpoznaje czym są oddzielane wartości w wyszukiwaniu, np.: “programista php”, “programista,php”, “programista;php”. Ostatecznie chodziło o to aby wyciągnąć wartości “programista” oraz “php” i przeszukać tabelę pod ich kątem. Jako pierwsze rozwiązanie “explode” w pętli, lecz zanim zacząłem tworzyć poszukałem czegoś na wzór multi explode. Znalazłem funckję preg_split.

(więcej…)

optymalizacja przechowywania danych w mysql

sobota, Lipiec 4th, 2009

Ciężko jest skategoryzować ten wpis – czy to bardziej mysql czy też php. Celem jest przedstawienie formy przechowywania danych w określonym przypadku. Załóżmy sytuację, że musimy w bazie danych przechowywać informacje które na poziomie samej bazy nie będą przetwarzane, a jedynie dopiero po odczytaniu przez php. Chodzi o to, że zamiast budować relację możemy przechowywać zserializowaną tablicę jako kolejną kolumnę w tabeli. Najlepszym przykładem są wszelkie systemy do zbierania informacji, które później trzeba przeanalizować, np.: systemy do zbierania statystyk.

(więcej…)

mysql innodb – klucze obce

sobota, Styczeń 24th, 2009

Poprzedni artykuł na temat silników baz danych wywołał krytyke artykułu z powodu pominięcia kluczy obcych w innodb – i słusznie :)W tym artykule napiszę krótki wstęp co to są te klucze obce po ci i podam jakiś przykład.
(więcej…)

mysql tabele tymczasowe – optymalizacja zapytań

niedziela, Grudzień 7th, 2008

Niedawno rozpocząłem pisać o bazach danych. Do tej pory omijałem te tematy z pełną świadomością ponieważ uważałem, iż dodanie indeksów spowoduje przyśpieszenie działania. Lecz w moich projektach pensje.net i grolix.pl problem z wydajnością zapytań okazał się poważniejszy, i nie wystarczyło dodać indeksów :) Ze skomplikowanymi zapytaniami poradziłem sobie wykonując tabele tymczasowe…
(więcej…)

mysql engine: myisam vs innodb vs memory vs archive

wtorek, Listopad 25th, 2008

Jakiś czas temu postanowiłem przeprowadzić test, jaki silnik mysql jest najlepszy w jakim przypadku. Kiedyś wszystko tworzyłem w myisam lecz teraz widzę, że to nie było zbyt dobrym posunięciem :). Mysql oferuje kilka silników i każdy z nich ma swoje wady i zalety. W tym artykule porównam te silniki podając konkretne zapytania sql, oraz czasy w jakich zostały one wykonane dla każdego modelu. Tym artykułem również rozpoczynam kategorię Bazy danych na moim blogu.
(więcej…)

Cachowanie funkcji – przyspieszenie generowania stron

piątek, Listopad 7th, 2008

Kontynuując cykl optymalizacji aplikacji przedstawiam wam moja super klasę cachowania.
Przyspiesza ona generowanie stronek dość istotnie.
Wyobraźmy sobie system informatyczny, serwis www czy też inne ustrojstwo,
zawsze w każdej aplikacji jest chociażby jedna funkcja, która jest często
wywoływana i jej wykonanie zajmuje więcej czasu niż 0.05 sek, a jej wynik
zmienia się dość rzadko, np raz na godzinę. Czemu więc by nie wykonać
optymalizacji takiej funkcji? A co jeżeli bardziej się nie da? I tutaj
właśnie przedstawiam rozwiązanie :).
(więcej…)

Cachowanie stron – oszczędzanie serwera :)

środa, Październik 1st, 2008

W poprzednim artykule opisałem możliwości gzipowania plików tekstowych zanim zostaną one przesłane do użytkownika. Lecz zanim strona będzie mogła zostać zgzipowana musi być wygenerowana. Aby uzyskać super wydajność tutaj również zastosować jakiś mechanizm. W zależności od potrzeb buduje się bardziej lub mniej złożone procedury cachowania wygenerowanej treści. Stosując prosty przykład pokazuję jak łatwo jest to zrobić dla swojej stronki domowej :)
(więcej…)

Gzipowanie strony/plików – przyśpieszenie ładowania

niedziela, Wrzesień 28th, 2008

Ostatnio coraz głośniej się robi o tym jak sobie radzić z dużą ilością użytkowników bo jednoznacznie oznacza wysoki transfer. Jednym z lekarstw na tę okoliczność jest używanie gzipa – czyli przesyłanie spakowanych stronek do użytkownika. Dotyczy się to wszystkich plików tekstowych, czy również javascript i css. Pliki multimedialne możemy pominąć bo żaden kompresor nie spakuje jpg’a czy avika :)
(więcej…)

Kompresja danych (zip,gzip,bzip2,lzma,7z)

niedziela, Wrzesień 14th, 2008

Dziś chciałem spakować trochę plików aby nie zajmowały miejsca. Był to “projekt” badawczy, polegał na sprawdzeniu jaka kompresja jest najlepsza. Praktycznie nie ma to znaczenia bo zawsze można dokupić kolejne 500GB dysku ale aby zaspokoić swoją ciekawość wykonałem test.
(więcej…)