2011-09-09 8 views
1

私はmysqlのクエリの速度に問題があります。 私は、第二の最初の選択の変更の都市で、国や都市で2つの選択ボックスを持っているそのAJAXによって提供:例えばスペインやロシアがどこにそれらを示すように多くの都市は、あまりにも多くを取っているされている場合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'); 
}); 
}); 

時間、テーブル都市は:私の選択2 varchar型、都市はvarchar 100、 をFIPS:列のFIPSのインデックスに私が持っている

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

を。

誰かがmiをスピードアップするのに役立つことはできますか?または選択肢のライブ変更を行うためにajax以外のより良い解決策ですか?ありがとう

+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 
     } 
    }); 
}