2017-02-03 204 views
0

我有大約400萬行的表,每行包含30列。它應該每天都以新的行數越來越大。Navicat消息 - 內存不足

當我想在250萬的瀏覽器中看到所有的數據時,它會給我留下內存不足的消息,在我看來,它與服務器資源無關?

此外,我試圖右鍵單擊連接 - >執行SQL文件,它運行succesfull,但它不顯示數據。

+0

另一個第三方工具的例子阻礙了嗎? –

+0

@RickJames sry,但我不明白你的問題? – MPetrovic

+1

_Probably_使用「mysql」命令行工具不會有這個問題。在應用程序和MySQL之間的Navicat和其他第三方軟件包往往會有侷限性,除非您強調它們纔會顯示出來。獲取4M行是一種壓力。 –

回答

0

你有一張大桌子。當您嘗試以結果集的形式檢索表的全部內容時,似乎您的客戶端軟件(Navicat)無法獲得足夠的RAM來保存它。

SQL的整個目的允許處理非常大的表:特別是不適合RAM的表。因此,將整個表格放入客戶端是沒有意義的。

如果你必須由於某種原因檢索整個表,請嘗試mysqldump命令行文件,並將其放入一個文件中。

您可能希望在客戶端程序查詢結束時使用LIMIT 1000子句或某些此類事物。

+0

我想讀取Navicat中的所有數據,如果我使用LIMIT1milion或LIMIT 1000 OFFSET 1000,這並不能解決客戶端Navicat中的問題,因爲您將始終看到相同的結果,因此無法通過下一行1000行。有了查詢,它工作正常,只有我無法在瀏覽器中加載所有數據 – MPetrovic

+0

你的意思是「我需要在我的皮卡車上運載十四噸煤,但是每當我將煤裝入卡車時,輪胎爆炸了。告訴我什麼樣的輪胎不會爆裂?「看,你正試圖把一個非常大的結果集放到一箇中等大小的程序中。你不能這樣做。 –

+0

如果您不知道數據質量是什麼,那麼構建應用程序的目的是什麼?什麼是做體力勞動和500k回到500k ..的目的?必須有一些正常的方法來查看所有的數據,並且看看我能如何以及我需要什麼來規範化數據 – MPetrovic