我想优化sql查询
SET SQL_BIG_SELECTS=1;
SELECT
`Surveys`.`fname`
, `Surveys`.`lname`
, `Surveys`.`smobile`
, `Surveys`.`semail`
, `Surveys`.`country`
, `Surveys`.`city`
, `Surveys`.`sdob`
, `Brand`.`brandname`
, `Product`.`productname`
, `Surveys`.`outletcode`
, `Surveys`.`outletname`
, `Surveys`.`coupon_no`
, `Users`.`username`
, DATE_ADD(`Surveys`.datetime, INTERVAL 8 HOUR) as datetime
, `Surveys`.`duration`
, userentry.couponcode as wcouponcode
, userentry.couponcodecountry
, userentry.prizename
, DATE_ADD(userentry.datetime, INTERVAL 8 HOUR) as wdatetime
FROM
`Surveys`
INNER JOIN `Brand`
ON (`Surveys`.`brandid` = `Brand`.`brandid`)
INNER JOIN `Product`
ON (`Surveys`.`productid` = `Product`.`productid`) AND (`Surveys`.`brandid` = `Product`.`brandid`)
INNER JOIN `Users`
ON (`Surveys`.`userid` = `Users`.`userid`)
INNER JOIN `userentry`
ON (`userentry`.`mobile` = `Surveys`.`smobile`)这里,如果我没有编写SET SQL_BIG_SELECTS=1,它不能工作
即使使用SQL_BIG_SELECTS it expire(sql超时),
那么如何优化这个查询呢?
请帮帮我
发布于 2013-10-04 21:33:21
在优化查询时,总是需要考虑两件事:
这些关键字是:
1.您不需要子查询-只需执行直接连接和聚合
2.您应该能够使用内部连接,这通常比外部连接更有效
发布于 2013-10-04 21:25:00
包含在join中的两个表之间的公共列应该被编入索引。
发布于 2013-10-04 21:23:07
必须为select语句中使用的列(brandId、productid、userid、mobile)建立索引
https://stackoverflow.com/questions/19182249
复制相似问题