Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wyszukiwanie w serwisie aukcyjnym, LEFT OUTER JOIN
www.aukcje.fm
post 26.05.2011, 08:31:33
Post #1





Grupa: Zarejestrowani
Postów: 173
Pomógł: 1
Dołączył: 4.05.2010

Ostrzeżenie: (20%)
X----


Witam,

Mamy problem z wydajnością wyszukiwania pełnotekstowego w serwisie aukcyjnym AUKCJE FM - ponad 700 000 rekordów aukcji.

Użyto funkcji match against + LEFT OUTER JOIN

Jak można zoptymalizować wyszukiwanie?

Oto kod
  1. $qs ="select count(*) as total FROM AUKCJE_auctions au
  2. LEFT OUTER JOIN AUKCJE_itemvariants iv
  3. ON au.id=iv.id
  4. WHERE ( au.suspended='0')
  5. AND ($wher au.private='n' $ora)
  6. AND $varq
  7. AND au.starts<=".$NOW."
  8. ORDER BY $sort";
  9.  
  10.  
  11. $rsl = mysql_query ($qs);
  12. if($rsl) {
  13. $hash = mysql_fetch_array($rsl);
  14. $total = (int)$hash[0];
  15. } else { $total = 0; echo mysql_error(); }
  16.  
  17. $TOTALAUCTIONS = $total;
  18. if(!isset($PAGE) || $PAGE == 1) {
  19. $OFFSET = 0;
  20. $PAGE = 1;
  21. } else {
  22. $OFFSET = ( $PAGE - 1) * $limit_aukcji;
  23. }
  24. $PAGES = ceil($TOTALAUCTIONS / $limit_aukcji);
  25.  
  26. $qs ="select au.* FROM AUKCJE_auctions au
  27. LEFT OUTER JOIN AUKCJE_itemvariants iv
  28. ON au.id=iv.id
  29. WHERE ( au.suspended='0')
  30. AND ($wher au.private='n' $ora)
  31. AND $varq
  32. AND au.starts<=".$NOW."
  33. ORDER BY $sort LIMIT ".intval($OFFSET).",".intval($limit_aukcji);
  34.  
  35.  
  36.  
  37. $result = mysql_query ($qs);
  38. if(!isset($_SESSION["PHPAUCTION_LOGGED_IN"]) && (($location_radio=='3') || ($location_radio=='4'))) {
  39. $ERR = $text_574;
  40. } elseif($title == '') {
  41. $ERR = $text_660;
  42. } else {
  43. if(@mysql_num_rows($result) > 0) {
  44. include $include_path."browseitems.inc.php";
  45. $TPL_auctions_list_value=browseItems($result);
  46. $auctions_count=count($TPL_auctions_list_value);
  47.  
  48. $TPL_auctions_total_value .="";
  49. if ($auctions_count==0) {
  50. $TPL_auctions_total_value = ""."$ERR_114";
  51. }
  52.  
  53. foreach ($states as $key=>$val) {
  54. $TPL_states_list.= " <OPTION VALUE='$val'";
  55. if($val==$state && $val != '') {
  56. $TPL_states_list.= " SELECTED='true'";
  57. }
  58. $TPL_states_list.= " >".$val."</OPTION>\n";
  59. }
  60.  



nikt nie ma pomysłu?
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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 15:45