join-mysql的性能和局限性
我的问题是:join-mysql的性能和局限性,mysql,sql,Mysql,Sql,我的问题是: $this->db->select('users.id as user_id'); $this->db->select('users.username'); $this->db->select('users.family'); $this->db->select('users.name'); $this->db->select('users.phone'); $this->
$this->db->select('users.id as user_id');
$this->db->select('users.username');
$this->db->select('users.family');
$this->db->select('users.name');
$this->db->select('users.phone');
$this->db->select('traction_details.title');
$this->db->select('traction_details.tr_id');
$this->db->select('tractions.buy_id');
$this->db->select('tractions.coupon_code');
$this->db->select('tractions.coupon_property_id');
$this->db->select('tractions.expired');
$this->db->select('tractions.date');
$this->db->from('tractions');
$this->db->join('traction_details' , 'traction_details.tr_id = tractions.id');
$this->db->join('users' , 'tractions.user_id = users.id');
$this->db->join('coupon_cats' , 'tractions.coupon_parent = coupon_cats.coupon_id');
$this->db->join('coupons' , 'coupons.id = tractions.coupon_parent');
$this->db->join('tractions_delivery' , 'tractions_delivery.tr_id = tractions.id');
$this->db->where('coupon_cats.cat_id =' , '13');
$this->db->where('tractions.succ =' , '1');
$this->db->group_by('tractions.buy_id');
$this->db->order_by('traction_details.tr_id', 'desc');
$this->db->limit( $limit , $offset );
我的查询速度非常慢,需要15-20秒
我的traction
表有188460条记录。如果id
超过170000,是否可以加入此表?因为我不想加入。
我认为这种限制提高了它的速度。是吗?只需添加到where>where tractions.id>170000就可以了,但这并不能加快我的查询速度。您应该使用前面的关键字
EXPLAIN
来执行查询。这将或多或少地为您提供查询中包含的所有表以及查询使用的索引类型的详细说明。请在这里添加解释的输出,否则我们只能猜测什么在减速。我还想提醒Martin,您还应该发布所有受影响表的create table语句,以便我们可以看到现有字段和索引。请发布实际查询,而不是任何基于美元的不可读的废话