Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z zapytaniem i brak pomysłu na jego optymalizacje...
sniver
post
Post #1





Grupa: Zarejestrowani
Postów: 159
Pomógł: 5
Dołączył: 31.08.2007

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


Najchętniej to w takim momentach był zrobił to: sciana.gif

Mam zapytanie i baze, niby wszystko ok, ale wykonuje sie troche długo bo baza produktów troche w EroBAY urosła...

Zapytanie jest z wyszukiwarki, a konkretnie przyporządkowuje kategorie produktów względem znalezionych w bazie danych...

Oto query:

  1. SELECT
  2. `c`.`CAT_Id` AS `id`,
  3. `c`.`PARENT_Id` AS `parent`,
  4. `c`.`CAT_Name` AS `name`,
  5. `c`.`CAT_Url` AS `url`,
  6. (
  7. SELECT
  8. COUNT(1)
  9. FROM
  10. `products` AS `p`
  11. JOIN `productsdescription` AS `pd` ON (`pd`.`PRD_Id` = `p`.`PRD_Id`)
  12. WHERE
  13. (`p`.`CAT_Id` IN (
  14. SELECT
  15. `c2`.`CAT_Id`
  16. FROM
  17. `categories` AS `c2`
  18. WHERE
  19. (
  20. (`c2`.`CAT_Id` = `c`.`CAT_Id`)
  21. OR (`c2`.`CAT_Ip` LIKE CONCAT(`c`.`CAT_Id`,'.%'))
  22. )
  23. AND (
  24. (`c2`.`CAT_Active` = 1)
  25. AND (`c2`.`CAT_Counter` > 0)
  26. )
  27. )
  28. )
  29. AND (MATCH(`pd`.`PRD_Name`, `pd`.`PRD_Description`) AGAINST ('kostium' IN BOOLEAN MODE))
  30. ) AS `licznik`
  31.  
  32. FROM
  33. `categories` AS `c`
  34.  
  35. WHERE
  36. (
  37. (`c`.`CAT_Active` = 1)
  38. AND (`c`.`CAT_Counter` > 0)
  39. )
  40. AND (
  41. (`c`.`CAT_Id` = 61)
  42. OR (`c`.`PARENT_Id` = 61)
  43. OR (`c`.`CAT_Ip` LIKE CONCAT(`c`.`CAT_Id`,'.%'))
  44. OR (`c`.`PARENT_Id` = 3)
  45. )
  46.  
  47. GROUP BY `c`.`CAT_Id`
  48.  
  49. HAVING
  50. (`licznik` > 0)
  51.  
  52. ORDER BY `c`.`PARENT_Id` ASC, `c`.`CAT_Sort` ASC


Problem znajduje się w subzapytaniu zwracającym wartość licznik, a konkretnie w kolejnym zagnierzdzeniu które wpisuje do IN podkategorie..

Może ktoś ma jakiś fajny pomysł jak to ugryźć...


--------------------
Go to the top of the page
+Quote Post

Posty w temacie


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 Aktualny czas: 21.08.2025 - 07:10