Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> ModRewrite, urle SEO friendly od strony bazy danych, Jak to wygląda wydajnościowo, analizjemy kilka sposobów.
Athlan
post
Post #1





Grupa: Developerzy
Postów: 823
Pomógł: 12
Dołączył: 18.12.2005

Ostrzeżenie: (0%)
-----


Witam.

Dziś chciałbym się zastanowić nad tym, jak wywołać url'e SEO friendly, maksymalnie odciążając bazę danych.

Rozważmy 2 przypadki:
  1. http://example.com/tytul-newsa.html, gdzie tytul-newsa to wartość kolumny news_titie_rewrited.
  2. http://example.com/1,tytul-newsa.html, gdzie 1 to ID newsa.
W przypadku 1 należy utworzyć indeks na pole news_titie_rewrited, pole jest tekstem więc zajmie wiele pamięci.
W przypadku 2 nie trzeba nic robić, ID ma primary.

Szybciejszym (moim zdaniem) do wykonania będzie sposób 2. Zajmie mniej pamięci (indeksy), bierze newsy po ID, etc. Oczywiście sposób 1 wygląda nieco ładniej, z dublowaniem tytułów nie ma problemu, bo mam odpowiednie sposoby aby tego uniknąć.

Zapraszam do dyskusji.
Go to the top of the page
+Quote Post
bogdan89
post
Post #2





Grupa: Zarejestrowani
Postów: 320
Pomógł: 36
Dołączył: 28.08.2006
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


No jak sam sobie juz odpowiedziales, sposob drugi jest zdecydowanie lepszy, bo nie trzeba tworzyc tej dodatkowej kolumny w MySQL... przy duzej ilosci danych, trzymanie tyle dodatkowego tekstu na pewno spowolni działanie bazy.

Zawarcie gdzies w url'u ID nie zrobi wiekszej roznicy u robotów wyszukiwarek.
Wizualnie tytul+newsa,124.html też wygląda dużo lepiej, i profesjonalniej niż news.php?id=124
Ja osobiscie odradzałbym korzystanie z pierwszego sposobu, ze względu na wydajność i większe ryzyko "posypania się" aplikacji.
I właśnie... Po co te "odpowiednie sposoby"? Cały czas zależy nam przecież na wydajności...
Go to the top of the page
+Quote Post
phpion
post
Post #3





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Cytat(Athlan @ 1.03.2008, 11:16:19 ) *
Rozważmy 2 przypadki:
  1. http://example.com/tytul-newsa.html, gdzie tytul-newsa to wartość kolumny news_titie_rewrited.
  2. http://example.com/1,tytul-newsa.html, gdzie 1 to ID newsa.
W przypadku 1 należy utworzyć indeks na pole news_titie_rewrited, pole jest tekstem więc zajmie wiele pamięci.
W przypadku 2 nie trzeba nic robić, ID ma primary.

Wyszukiwanie po indeksach liczbowych jest znacznie szybsze od wyszukiwania pod indeksach znakowych. Ponadto jestem zwolennikiem stosowania "sztucznych" identyfikatorów. Przykładowo: na tabeli użytkowników nie ma konieczności stosowania id gdyż pole login może być kluczem głównym. Ja jednak wolę takowe pole dodać.
Jeśli chodzi o zaproponowane przez Ciebie linki preferuję zamiast:
Kod
http://example.com/1,tytul-newsa.html,

stosowanie linku takiego:
Kod
http://example.com/1/tytul-newsa.html,

czyli rozdzielenie id od nazwy za pomocą slasha zamiast przecinka.

Cytat(Athlan @ 1.03.2008, 11:16:19 ) *
Szybciejszym (moim zdaniem) do wykonania będzie sposób 2.

I ogólnie jest lepsiejszy (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.09.2025 - 04:15