-3

100 ~ 200k レコードの DB テーブルがあり、最適化する必要があります。たとえば、ユーザーがcarという用語を検索したい場合、約 25,000 件の結果が得られます。

私は彼に最新の結果を 500 件だけ提供したいと思いますが、どうすればよいでしょうか? を使用する必要があることはわかっていますLIMITが、最新の 500 行だけを「グループ化」する方法がわかりません。

データベースからデータをフェッチする方法をよりよく理解するために、ここに小さなスニペットを示します。

$search = mysql_real_escape_string(searched_query($_GET['skill'])); 
$q = "...long sql query...";
echo $q;
$result = mysql_query($q);
$items = 30; // number of items per page.
$all = $_GET['a'];

$num_rows = mysql_num_rows($result);
if($all == "all"){
    $items = $num_rows;
}
$nrpage_amount = $num_rows/$items;
$page_amount = ceil($num_rows/$items);
$page_amount = $page_amount-1;
$page = mysql_real_escape_string($_GET['p']);
if($page < "1"){
    $page = "0";
}
$p_num = $items*$page;
// Query that you would like to SHOW
$result = mysql_query($q." ORDER BY published DESC LIMIT $p_num , $items");

前もって感謝します!

4

2 に答える 2

0

で並べ替えることpublished DESCで、リストを最新のものから古いものへと並べ替えたことになります。したがって、limitof 500 を適用すると、自動的に最新の 500 行のみがフェッチされます...

したがって、Mysql は最初に注文してから制限を適用します。

于 2013-03-07T09:27:45.483 に答える
-1

クエリで使用ORDER BYします。詳細については、こちらをご覧ください

于 2013-03-07T09:45:01.430 に答える