2010-04-11 79 views
1

我有三個表PHP - MySQL的 - 選擇無限期運行,

listings: id, pid, beds, baths, etc, etc, etc, db 
locations: id, pid, zip, lat, lon, etc, etc, etc, db 
images id, pid, height, width, raw, etc, etc, db 

ID,PID & DB進行索引。 db只是引用某個特定項目來自的mls提供程序。在圖像中,原始列包含原始圖像數據

列表/位置中有大約15k行,圖像中大約有120k行,所以有多行具有相同的pid。

當我做「從列表中選擇pid」或「從位置選擇pid」時,查詢在大約100ms內成功完成。

當我從圖像中選擇pid時,它只是掛在sqlyog中,並且從來沒有完成......我在想,因爲原始列包含很多信息,可能也試圖選擇這個信息,但是我的查詢並沒有提供, t試圖選擇,所以我無法想象爲什麼它需要這麼長時間...

任何想法,爲什麼會這樣?

+0

您是否嘗試過簡單的故障,如「選擇PID從圖像限制10;」如果是的話,多長時間是需要 – MJB 2010-04-11 20:26:37

+0

限制10,限100,極限? 1000,限制10000工作正常..當我做限制100000時,它做同樣的事情,當沒有指定限制時,常規查詢所做的事情 - 它是永久運行,然後當它最終完成時,它表示花費了1.3秒 - 當 – Mickey 2010-04-11 20:36:47

+3

聽起來很奇怪,也許是索引或數據表破壞了嗎?你可以嘗試轉儲整個表並將其重新插入到另一個數據庫中嗎? – 2010-04-11 20:41:06

回答

0

也許一個破損的索引或數據表?你可以嘗試傾倒整個桌子並將它重新插入到另一個數據庫中嗎?

(見註釋擴展的意見和建議)