2016-02-11 96 views
0

我是一名初學者,我需要一些幫助來加速以下查詢。在INDEXES中,我也是一名初學者,我不太明白如何添加和使用它們。 如果有人可以請幫助我加快這個查詢,我會深表感謝。 目前查詢花費~10s加載。優化Mysql UNION查詢以加快加載速度

顯示行0 - 0(1個總計,查詢花費10.2243秒)

SELECT `location2` AS `location` , '2' AS `number` 
FROM `properties` 
WHERE `price_from` 
BETWEEN 0 
AND 999999 
AND `country` = 'france' 
UNION SELECT `location3` AS `location` , '3' AS `number` 
FROM `properties` 
WHERE `price_from` 
BETWEEN 0 
AND 999999 
AND `location2` = 'france' 
UNION SELECT `location4` AS `location` , '4' AS `number` 
FROM `properties` 
WHERE `price_from` 
BETWEEN 0 
AND 999999 
AND `location3` = 'france' 
UNION SELECT `location5` AS `location` , '5' AS `number` 
FROM `properties` 
WHERE `price_from` 
BETWEEN 0 
AND 999999 
AND `location4` = 'france' 
UNION SELECT `location6` AS `location` , '6' AS `number` 
FROM `properties` 
WHERE `price_from` 
BETWEEN 0 
AND 999999 
AND `location5` = 'france' 
+0

正常化您的數據 – Strawberry

+0

謝謝@Strawberry。我已經計劃規範化數據,但目前我正在尋求優化所述查詢以加快裝載時間。任何想法呢? – Kev

+0

是的。規範化數據。 – Strawberry

回答

0

不要張開跨列的陣列。相反,請根據需要製作具有儘可能多行數的另一個表。

通過該更改,您可以避開UNION,我們可以討論如何優化需要的JOIN