Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Optymalizacja zapytania
soska66
post 20.11.2008, 11:06:19
Post #1





Grupa: Zarejestrowani
Postów: 132
Pomógł: 1
Dołączył: 3.02.2005

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


Witam

Mam takie zapytanie, ktore moze samo w sobie specjalnie dlugie nie jest, ale w polaczeniu z kilkoma tysiacami wpisow zarowno w tabeli product jak i product_option, trwa cholernie dlugo.
Mozecie podpowiedziec jakies inne rozwiazanie?

przykladowe zapytanie

  1. SELECT product.id AS id, product.sku AS sku, album_title, product.description AS description, product.price AS price, product_category.category_code AS code
  2. FROM product, product_category, product_option
  3. WHERE product.sku = product_category.product_sku AND product.sku = product_option.product_sku AND ( product.album_title LIKE '%Aitken%George%' OR product.description LIKE '%Aitken%George%' OR product.sku LIKE '%Aitken%George%' OR product_option.composer LIKE '%Aitken%George%' OR product.composer LIKE '%Aitken%George%')


Nie jestem pewien czy dobrym rozwiazaniem jest przeszukiwanie w jednym zapytaniu dwoch tabel przy uzyciu LIKE. Jest raczej pewne, ze wlasnie ta operacja zajmuje tyle czasu

  1. product_option.composer LIKE xxx OR product.composer LIKE xxx


Ten post edytował soska66 20.11.2008, 11:09:41
Go to the top of the page
+Quote Post
Riklaunim
post 20.11.2008, 11:50:48
Post #2





Grupa: Zarejestrowani
Postów: 640
Pomógł: 44
Dołączył: 8.02.2004

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


Zastosuj wyszukiwarkę Sphinx (na zwykłym hostingu to tego nie postawisz) (lub też dla odważnych Xapiana, Hyperestrayera, Solra itd.). Bazy danych nie są wyszukiwarkami i zapytania LIKE nie są szybkie.


--------------------
Biblioteki: Skrypty, CMS | Kurs PHP | Python
Go to the top of the page
+Quote Post
soska66
post 20.11.2008, 12:01:47
Post #3





Grupa: Zarejestrowani
Postów: 132
Pomógł: 1
Dołączył: 3.02.2005

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


Jest to zwykly hosting i nic z tym nie da sie zrobic. Chodzilo mi wylacznie o to czy da sie zoptymalizowac moje zapytanie bo senior expertem w mysqlu nie jestem i moglem cos przgapic/pominac, lub o jakims lepszym sposobie po prostu nie wiedziec smile.gif
Go to the top of the page
+Quote Post
Riklaunim
post 20.11.2008, 12:09:59
Post #4





Grupa: Zarejestrowani
Postów: 640
Pomógł: 44
Dołączył: 8.02.2004

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


Jeżeli to tabela typu MYISAM to możesz spróbować pełnotekstowego wyszukiwania, lecz na dłuższą metę na dużej ilości rekordów pełnotekstowe wyszukiwanie tylko przez Sphinxa lub podobne rozwiązanie.


--------------------
Biblioteki: Skrypty, CMS | Kurs PHP | Python
Go to the top of the page
+Quote Post
soska66
post 20.11.2008, 15:27:32
Post #5





Grupa: Zarejestrowani
Postów: 132
Pomógł: 1
Dołączył: 3.02.2005

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


nie bardzo rozumiem jak moge FULLTEXT w kontekscie przeszukiwania dwoch roznych tabel za jednym razem. any help ?

Ten post edytował soska66 20.11.2008, 15:27:53
Go to the top of the page
+Quote Post
Riklaunim
post 20.11.2008, 15:36:04
Post #6





Grupa: Zarejestrowani
Postów: 640
Pomógł: 44
Dołączył: 8.02.2004

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


ech winksmiley.jpg Najlepsze rozwiązanie to serwer z dostępem np. przez ssh z możliwością odpalania sphinxa - jeżeli to ma działać i się rozwijać winksmiley.jpg Bo tej powyższej SQL nie da się w magiczny sposób przyśpieszyć tongue.gif


--------------------
Biblioteki: Skrypty, CMS | Kurs PHP | Python
Go to the top of the page
+Quote Post
soska66
post 20.11.2008, 16:35:31
Post #7





Grupa: Zarejestrowani
Postów: 132
Pomógł: 1
Dołączył: 3.02.2005

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


ok smile.gif wlasnie takiej odpowiedzi oczekiwalem... ze jest to mozliwe albo ze nie smile.gif skoro nie, to nie bede kombinowal z kodem bo i tak nic nie da.
Mam oczywiscie dostep ssh, ale ograniczona mozliwosc instalowania pakietow.. zeby nie powiedziec zadna smile.gif To zwykly shared hosting

cos jest mimo wszystko nie tak... 30 sekund trwa to wyszukiwanie... to nawet na kilka (nie kilkanascie nawet) tysiecy rekordow to dlugo

Ten post edytował soska66 20.11.2008, 15:45:01
Go to the top of the page
+Quote Post
Riklaunim
post 20.11.2008, 16:39:33
Post #8





Grupa: Zarejestrowani
Postów: 640
Pomógł: 44
Dołączył: 8.02.2004

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


Pisz do administratora z pytaniem o możliwość uruchomienia Sphinxa. Płacisz = wymagasz. Używasz Sphinxa = nie zamula im serwera smile.gif


--------------------
Biblioteki: Skrypty, CMS | Kurs PHP | Python
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 23.06.2025 - 21:09