![]() |
![]() ![]() |
![]() |
-lukasamd- |
![]()
Post
#1
|
Goście ![]() |
Witam,
dzisiaj zrobiłem sobie pseudo-router do przyjaznych linków. Pseudo, ponieważ sam skrypt nie rozbija adresu - silnik na którym działa nie jest ani na MVC, ani OOP. Informacje odnośnie adresu idą za pomocą htaccess przez GET do odpowiedniego pliku i zawsze powinny wyglądać następująco: Cytat ?seo=to-jest-przykladowy-adres W pliku tym zabezpieczam ciąg (mysql_real_escape_string) i szukam w bazie w tabeli którą utworzyłem w tym celu. Jej struktura wygląda tak: - url_url - varchar(200), unique - url_typ - varchar(200) - url_id - smallint(5) Tabela jest przeszukiwana pod kątem wartości url_url. Jeżeli znajdzie rekord, to wie o jaki moduł serwisu chodzi (np. informacja, artykuł itp.) a także o jakim jest on id. W zależności od typu załączany jest odpowiedni plik i generuje się konkretna treść. Tak to wygląda w teorii i praktycznie działa tak jak zaplanowałem. Zastanawiam się jednak, czy budowanie bazy adresów w mysql to oby na pewno dobre rozwiązanie? Rekordów nie będzie więcej niż 2000, robiłem test przy wygenerowanych około 3000 ciągach i przy wartości unikalnej wyszukiwanie trwa około 0.0007s, a więc niezbyt długo. Oczywiście mogę również wszystko wpakować do tablicy i zapisać ją do pliku, tylko czy wgrywanie całej i przeszukiwanie jej przy każdym requescie ma w ogóle sens? W tej roli chyba najlepiej sprawdza się baza danych... Nie wiem, doradźcie ![]() Odświeżam, bo znowu mam dylemat.... Ten post edytował lukasamd 5.10.2009, 16:36:12 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 1 566 Pomógł: 37 Dołączył: 14.05.2003 Skąd: Kraków ![]() |
To już poziom wyższy, niż Przeszkole. Przenoszę do PHP :-)
Agavi ma dość ciekawy system routingu oparty o XML, warto popatrzeć. |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 115 Pomógł: 23 Dołączył: 27.06.2009 Skąd: Jaworzno Ostrzeżenie: (0%) ![]() ![]() |
moim zadaniem zdecydowanie w oparciu o bazę tak jak masz teraz (oczywiście z indeksem na url_url)
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 180 Pomógł: 37 Dołączył: 1.05.2008 Skąd: Białystok Ostrzeżenie: (0%) ![]() ![]() |
Ogólnie uważam że jeśli coś nie jest wysoce dynamiczne i nie nie trzeba tego edytować z poziomu panelu administracyjnego to lepiej pakować to do plików. Teraz może i chodzi to dobrze ale jeśli planujesz zwiększenie ruchu to jednak lepiej przenieść to do tablicy php, im mniej zapytań SQL tym lepiej
![]() |
|
|
![]()
Post
#5
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
im mniej zapytań SQL tym lepiej ![]() Nie zawsze. Przykładowo: mając bazę geolokalizacji z blisko 80k rekordów (IP do, IP do, kraj) zdecydowanie lepiej wyszukiwać konkretny kraj na poziomie bazy danych. Wpakowanie bazy do tablicy w pliku i includowanie go za każdym razem tylko po to by dostać się do jednego elementu byłoby mniej wydajne niż pobieranie tych danych z bazy. W omawianym przykładzie routera również celowałbym w bazę danych. |
|
|
-lukasamd- |
![]()
Post
#6
|
Goście ![]() |
No właśnie też mi się tak wydaje po lekturze kilku artykułów: nawet przy np. 200k odsłon dziennie nie wykorzystam limitu zapytań na shared hostingu, zaś 200k includowania sporego pliku to jednak pewien cios dla pamięci - doliczmy do tego sortowanie, wyszukiwanie i dbanie o unikalność...
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 07:14 |