【发布时间】:2018-11-20 06:54:04
【问题描述】:
Mysql 查询运行很慢。
表中有 1000000 行。我在问题中添加了解释查询。这需要 10-11 秒。我有多个条件不断改变用户的输入。是否可以提供唯一索引。
解释查询
id -1
select_type -简单
表 - 卖家
类型 -ref
可能的键-季度,季度_2,comp_idx1,index_all,qc
关键 -qc
key_len -32
参考 -const
行 -399782
额外 - 使用 where
SELECT `cm`,
`week`,
`quarter`,
SUM( `gmv`) as gmv,
SUM( `qty_sold`) as qty_sold,
SUM( `live_listing`) as live_listing ,
SUM( `txn`) as txn,
SUM( `new_listings`) as new_listings,
SUM( `ended_listings`) as ended_listings
FROM `sellers`
where quarter=:quarter and
category=:category
group by cm
CREATE TABLE `sellers` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`seller_id` varchar(20) NOT NULL,
`am` varchar(30) NOT NULL,
`rm` varchar(30) NOT NULL,
`cm` varchar(30) NOT NULL,
`week` varchar(10) NOT NULL,
`quarter` varchar(10) NOT NULL,
`site` varchar(20) NOT NULL,
`category` varchar(20) NOT NULL,
`format` varchar(20) NOT NULL,
`price_band` varchar(20) NOT NULL,
`gmv` double(11,2) NOT NULL,
`qty_sold` int(11) NOT NULL,
`live_listing` int(11) NOT NULL,
`txn` int(11) NOT NULL,
`new_listings` int(11) NOT NULL,
`ended_listings` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `seller_id` (`seller_id`),
KEY `quarter` (`quarter`),
KEY `week` (`week`),
KEY `id` (`id`),
KEY `category` (`category`),
KEY `site` (`site`),
KEY `cm` (`cm`),
KEY `rm` (`rm`),
KEY `am` (`am`)
) ENGINE=InnoDB AUTO_INCREMENT=1692618 DEFAULT CHARSET=utf8
【问题讨论】:
-
“非常慢”的定义是什么?目前需要多少时间?此外,将
EXPLAIN语句结果添加到当前查询的问题中。 -
请通过编辑将这些详细信息添加到问题中。所有格式都在 cmets 中丢失,使其无法读取。
-
在 group byu 语句后使用 order by null
-
通常,您应该在 GROUP BY 中包含 SELECT 中的任何和所有非聚合列
-
@Strawberry 我没听懂。
标签: mysql