【问题标题】:slow mysql query with inner join 0846 sec内部连接 ​​0846 秒的慢 mysql 查询
【发布时间】:2014-09-28 16:39:51
【问题描述】:

当我使用 INNER JOIN 查询时遇到另一个问题

这个查询

SELECT *
FROM `engine4_product_file` INNER JOIN
     `engine4_file`
     ON engine4_product_file.fid = engine4_file.id
WHERE engine4_product_file.pid IN (3347,3346,3345,3343,3342,3337) and
      engine4_file.active = 1 AND
      engine4_file.ext IN ('jpg','gif','png','jpeg')

这会创建表engine4_product_file

 CREATE TABLE `engine4_product_file` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `fid` int(11) NOT NULL,
  `pid` int(11) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `engine4_product_file` (`fid`),
  KEY `pid` (`pid`)
) ENGINE=InnoDB AUTO_INCREMENT=6549 DEFAULT CHARSET=latin1

这会创建表engine4_file

CREATE TABLE `engine4_file` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `uid` int(11) NOT NULL,
  `name` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  `url` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `active` int(11) NOT NULL DEFAULT '1',
  `size` int(11) DEFAULT NULL,
  `ext` varchar(10) DEFAULT NULL,
  `folder` int(11) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=48801 DEFAULT CHARSET=latin1

这个解释

id  select_type     table   type    possible_keys   key     key_len     ref     rows    Extra   
1   SIMPLE  engine4_product_file    range   engine4_product_file,pid    pid     4   NULL    30  Using where
1   SIMPLE  engine4_file    eq_ref  PRIMARY     PRIMARY     4   akafine_social2.engine4_product_file.fid    1   Using where

【问题讨论】:

  • 你的两个表同名?哪个是哪个?还有什么问题,我只看到30行,真的很慢吗?
  • 我认为存在剪切粘贴错误,因为您两次添加了同一个表格。
  • 我只是想获得为此表添加索引的最佳方式

标签: mysql inner-join performance


【解决方案1】:

更改您的 WHERE 条件

  WHERE  engine4_file.active = 1 AND
         engine4_file.ext IN ('jpg','gif','png','jpeg') AND
  engine4_product_file.pid IN (3347,3346,3345,3343,3342,3337) 

添加索引

 ALTER TABLE engine4_file ADD KEY (active,ext)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-20
    • 1970-01-01
    • 2014-08-28
    • 2022-01-12
    • 2012-12-09
    • 2015-04-19
    • 1970-01-01
    • 2019-08-24
    相关资源
    最近更新 更多