首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql查询运行缓慢

mysql查询运行缓慢
EN

Stack Overflow用户
提问于 2010-12-06 15:27:33
回答 4查看 369关注 0票数 1

有没有办法加快这个查询的速度。加载速度很慢,大约有279条记录。我已经为数据中的Language & id字段建立了索引。还有什么我能做的吗?

代码语言:javascript
复制
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>";
} 

表格

代码语言:javascript
复制
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 ;
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-12-06 15:53:37

您需要对匹配的内容进行索引。

就像在一本书中一样,所有章节的页码都在索引中给出,因为读者是按章节搜索的,同样,为了让Mysql更快地处理您的查询,您需要索引将在where条件中匹配的字段。索引其他人在这里建议的字段。

票数 2
EN

Stack Overflow用户

发布于 2010-12-06 15:29:06

您还需要对groupingp_order进行索引。如果没有被任何where条件使用,则可以在language上删除索引。

请发布表模式以供进一步研究,并提供一些示例数据。

票数 1
EN

Stack Overflow用户

发布于 2010-12-06 15:48:33

代码语言:javascript
复制
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)并不能完全解决问题,因为您在查询中同时使用了这两个字段。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4364124

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档