2016-08-24 49 views
-2

幾個月前,我遇到了一個問題,那就是我的MySQL表經常被損壞。我談到支持幾周,更換服務器,甚至發佈了一個關於Stack Overflow的問題,但找不到任何答案。從那以後,我重建了我的數據庫,將一張表分成了五份,大概三週左右的事情都沒有問題。然後在其中一個表上發生同樣的問題。WHERE NOT IN查詢會導致表損壞嗎?

今天早上,匆忙中,創建了一個查詢,使用cron作業運行以搜索WHERE NOT IN,今天下午第二個表已經崩潰。表腐敗是否可以鏈接到WHERE NOT IN?

查詢是

SELECT asin 
 
FROM asin_bsr 
 
WHERE asin NOT IN 
 
    (SELECT asin FROM asin_price) 
 
LIMIT 9

asin_bsr是以前有問題的表,asin_price是今天損壞表。

+2

一個選擇不寫入數據庫,所以它怎麼會損壞它? – 2016-08-24 21:22:49

+0

然而,它可以識別磁盤上的壞扇區並導致磁盤崩潰,但這不是查詢的錯誤,只是磁盤驅動器的一個功能,就像@Dagon所說的 – RiggsFolly

+0

@RiggsFolly yup,如果是我並且我有嘗試了所有的軟件方法,我會把數據庫移動到一個新的驅動器上。或至少在驅動器上的新位置 – 2016-08-24 21:25:20

回答

0

不,該腐敗無法鏈接到WHERE NOT IN。就改變數據或數據庫結構而言,包含WHERE NOT IN的SELECT查詢和沒有它的SELECT查詢是相同的。也就是說,SELECT查詢不會改變數據或數據庫的結構。他們只是看法。

在CRUD函數中,SELECT查詢代表「R」或「Read」。如果你的數據庫在某種程度上被你正在運行的SQL代碼破壞了,那麼除了閱讀那裏的內容之外,這將是一些操作。