我想執行某些選擇(正如我在sqldeveloper中測試的)將檢索大量數據(〜350,000行)。最後,我想將這些行寫入一個文件。SQL - 如何一次選擇一行?
我打算寫一個PERL代碼來做它,我想知道是否有辦法一次檢索一行,把它寫到我的輸出文件並繼續到下一行。
也就是說,我想得到與我原來的選擇相同的結果,但以較小的塊。
謝謝!
我想執行某些選擇(正如我在sqldeveloper中測試的)將檢索大量數據(〜350,000行)。最後,我想將這些行寫入一個文件。SQL - 如何一次選擇一行?
我打算寫一個PERL代碼來做它,我想知道是否有辦法一次檢索一行,把它寫到我的輸出文件並繼續到下一行。
也就是說,我想得到與我原來的選擇相同的結果,但以較小的塊。
謝謝!
如果你認爲你可以支付執行查詢多少次,你可以使用
SELECT .... FROM ...
WHERE ....
LIMIT 0, 100 // index_from, amount
首次加入量以在下一次指數
SELECT .... FROM ...
WHERE ....
LIMIT 100, 100
你可以使用LIMIT 0,1
得到一個記錄一次,但你有35萬條記錄......這是瘋狂的!
爲什麼.....?它明顯要使用循環:) – Laksith 2015-12-18 02:45:32
創建循環
SELECT * FROM my_table LIMIT 0, 1
,然後你說,下一次增加你的極限與一個
SELECT * FROM my_table LIMIT 1, 1
你只需要使用
$dbh->{'mysql_use_result'} = 1;
告訴MySQL驅動程序在內存中不加載整個結果。
接下來你只處理與
while (my $ary_ref = $sth->fetchrow_arrayref) {
....
}
每個結果行你嘗試過什麼?試圖從數據庫中獲取更小的塊通常是錯誤的思考方式。試着編寫你的代碼並看看它是如何工作的。 – Mat 2012-04-11 07:47:17