簡體   English   中英

mysql查詢運行緩慢

[英]mysql query running slow

有沒有辦法加快這個查詢。 它的加載速度慢,約有279條記錄。 我已將數據中的Language&id字段編入索引。 還有什么我可以做的嗎?

echo "<select name=language style='width: 136px;'>";
echo "<option value=$language selected=selected>-- Select --</option>";
$group1 = '<optgroup label=Common>';
$group2 = '<optgroup label=Alphabetically>';
$group = mysql_query("SELECT language, grouping, p_order FROM lang_list 
            WHERE grouping IN ('1','2') ORDER BY p_order");
while($row = mysql_fetch_array($group))
{
  if ($row['grouping'] == '1')
  {
       $group1 .= '<option value="'.$row['language'].'">'.
            $row['language'].'</option>';
  }
  else
  {
       $group2 .= '<option value="'.$row['language'].'">'.
            $row['language'].'</option>';
  }
    $group1 .= '</otpgroup>';
    $group2 .= '</otpgroup>';

    echo $group1;
    echo $group2;
    echo "</select>";
} 

lang_list (
  id int(8) NOT NULL auto_increment,
  language varchar(75) NOT NULL,
  grouping varchar(15) NOT NULL,
  p_order varchar(15) NOT NULL,
  PRIMARY KEY  (id, language)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=280 ;

您需要索引要匹配的內容。

就像書中一樣,所有章節的頁碼都在索引中給出,因為讀者按章節搜索,類似於Mysql更快地處理你的查詢,你需要索引將在where條件中匹配的字段。 索引其他人在此建議的字段。

您還需要索引groupingp_order 如果沒有任何where條件使用,您可以刪除language索引。

請發布表格架構以供進一步調查,以及一些示例數據。

create index I_grouping_order on lang_list (grouping, p_order);

如果您想了解詳細信息,請查看http://dev.mysql.com/doc/refman/5.0/en/mysql-indexes.html

請注意,添加兩個單獨的索引(一個用於grouping ,一個用於p_order )將無法完成這一操作,因為您在查詢中同時使用這兩個字段。

在灌漿和p_order上嘗試一個合成索引。 通過優化了解更多關於組的信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM