2011-09-09 3 views
1

mysql 쿼리 속도에 문제가 있습니다. 나는 초에 첫번째 선택 변경 도시에 국가 및 도시와 2 선택 상자를 가지고는 아약스에 의해 제공 :mysql 선택 속도

$(document).ready(function() 
{ 

$(".country").change(function() 
{ 
var id=$(this).val(); 
var dataString = 'id='+ id; 
function doAJAX(url) { 

$.ajax 
({ 
type: "POST", 
url: url, 

data: dataString, 
cache: false, 
success: function(html) 
{ 
$(".city").html(html); 
} 

}); 
} 




doAJAX('search_ajax.php'); 
}); 
}); 

예를 스페인 또는 러시아 곳들이 너무 많이했다 보여 많은 도시입니다 시간, 테이블 도시 : 내 선택이 VARCHAR, 도시 VARCHAR (100), 을 FIPS : 열 FIPS 지수에 내가 가진

SELECT city from cities where fips='some value' //for example EN or any .. 

합니다.

누구도 마일 속도를 높일 수 있습니까? 또는 아약스 이외의 더 나은 솔루션을 선택의 라이브 변화를 만들기 위해 무엇입니까 ?? 감사합니다

+0

쿼리 자체가 시스템의 다른 부분보다 느리다는 것을 증명하기 위해 실제로 프로파일 링 했습니까? 프로파일이있는 – Neil

+0

을 사용하면 시스템에서 지출 한 시간을 의미합니까? 나는 percona-toolkit을 발견했다. 그러나 그것은 Windows에서 실행되지 않고있다. 그리고 쇼 상태에서, 나는 그것을 읽는 법을 모른다 :( – riso

답변

1

fips에 색인을 생성 해보십시오.

+0

나는 그것을 fips 칼럼에 입력했다. index – riso

0

의 MySQL의에서 요청이있을 때 어쩌면 사람을 도움이 될 것입니다,이 솔루션으로 표시 할 수 있다면 나도 몰라,하지만 난 로딩 GIF를 추가하여 그것을 해결에 함수 변경 :

function doAJAX(url) { 
    $(".city").hide(); // hide the select 
    $("#Div1").show(); // show loading gif 
    $("#Div1").html('<img src="images/loading2.gif"> Loading...'); 
    $.ajax({ 
     type: "POST", 
     url: url,  
     data: dataString, 
     cache: false, 
     success: function(html){ 
      $(".city").html(html); 
      $(".city").show(); // on succes show select 
      $("#Div1").hide(); // and hide the loading 
     } 
    }); 
}