嗨,我知道有很多專用於查詢優化策略的主題,但是這個是如此具體,我無法在interenet上的任何地方找到答案。我需要加快大型表上的特定的mysql查詢
我在eshop(appx。180k行)中有大型產品表格,表格有65列。是的,我知道它很多,但是我存儲了關於書籍,DVD,藍光和遊戲的信息。
儘管如此,我並沒有考慮到查詢中的很多列,但select仍然非常棘手。有許多條件需要考慮和比較。下面
SELECT *
FROM products
WHERE production = 1
AND publish_on < '2012-10-23 11:10:06'
AND publish_off > '2012-10-23 11:10:06'
AND price_vat > '0.5'
AND ean <> ''
AND publisher LIKE '%Johnny Cash%'
ORDER BY bought DESC, datec DESC, quantity_storage1 DESC, quantity_storege2 DESC, quantity_storage3 DESC
LIMIT 0, 20
查詢我已經試圖把有指標逐一的cols在where子句中,甚至在ORDER BY子句,然後我試圖在(生產,publish_on,publish_off,price_vat,建立複合索引EAN )。
查詢速度仍然很慢(幾秒鐘),因爲它的eshop解決方案和人員因爲不能快速獲得結果而需要離開。而且我還沒有計算我需要執行搜索所有找到的行的時間,所以我可以進行分頁。
我的意思是,讓它快速的最好方法是簡化查詢,但在這種情況下,所有條件和排序都是必須的。
任何人都可以幫助解決這類問題嗎?是否有可能加快這種查詢,或者有任何其他方式,我可以例如簡化查詢,並在PHP引擎上留下餘下的結果進行排序。
哦,Iam真的無能爲力了..與我們分享您的智慧peple,請...
提前感謝
不使用*僅使用字段移動你想要 –
和運行解釋,看看發生了什麼 –
爲表添加唯一或主索引。 –