2012-03-27 68 views
0

这是MySQL的截图上常见的查询解释命令: http://cl.ly/3r34251M320A1P2s3e1Y提高MySQL的性能

我有3代不同的表我要联合起来,以提取我想要的数据。这是使用主动记录的主要CI模型代码

$this->db->select('articles.id, articles.title, articles.link, articles.updated_time, articles.created_time, shows.network,shows.show_id, shows.name'); 
    $this->db->from('articles')->order_by('updated_time','desc')->offset($offset)->limit($limit); 
    $this->db->join('labels', 'articles.remote_id = labels.articleid'); 
    $this->db->join('shows', 'shows.show_id = labels.showid'); 

任何人都可以提出任何方法来改善模式或查询性能吗?

感谢

回答

0

是什么让您的查询慢是MySQL的使用临时表和文件排序,这意味着它不能有效地使用该索引并创建一个临时表(在磁盘上很多次!)。 当您使用一个索引连接表并使用另一个索引对其进行排序或在另一个索引上使用条件时,通常会发生这种情况。 你可以做的第一件事是阅读关于这个问题,看看你是否可以,至少,避免使用临时磁盘表。 How mysql uses temp tables