批量建立百萬條資料,會讓程式卡死,資料庫崩潰嘛,為什麼我們的技術說建立一萬條,寫for迴圈都會卡死?

時間 2021-05-05 18:02:15

1樓:findcoins

如果是常規場景裡所謂的 『卡死』那麼這個程式設計師沒有問題。 說得很對。

百萬條資料的非非同步操作的確會讓 UI卡得不要不要的。 完全可以用 『會讓程式卡死』 這種描述。

至於資料庫崩潰,那可能是嚇唬你。

但是, 你這個需求能夠吭哧吭哧的拿到知乎來問那也說明你對你們的技術人員毫無尊重。

進而我也懷疑你這個需求本身是不是就非常的不合理。

常規web jsp php頁面不涉及海量併發的場景,基本提出單次操作百萬級資料寫入都是很二貨的需求 -- 希望你不要被我言中。

換個說法,你給我幾億幾百億的資料量我也不虛啊,我相信你的這位程式設計師同事一般也不虛。 幾億幾百億資料匯入只不過是乙個非同步的事而已。 但是你這個幾百萬的詳細需求裡面我個人懷疑一定有非常不合理的邏輯,否則你的同事不會這麼牴觸你進而還讓你生氣的來知乎問一趟。

2樓:「已登出」

百萬不知道。

我試過迴圈一條一條提交3w條,資料庫的機子效能不怎麼樣,啥事沒有,就是提交跑了半天。

直接提交sql指令碼上去跑得飛快,幾秒就跑完了……不過建立這個指令碼就用了不止幾秒……

當然,這也和你一張表有多少列有關係……

3樓:軟體園的豬

「卡死」是乙個非常模糊的評價。20s時間並不長,但是如果是描述乙個頁面的響應時間,幾乎是不可能接受的。如果你的系統每天有1萬個任務需要做,每個任務需要20s,24h時間不夠用。

20s insert 100萬資料也許是夠的,假如是跨過省級網路,把資料送到db伺服器,是不夠的。

提問需要把需求描述清楚,這一句話無法判斷。

4樓:禽牙

估計是犯了很多新手常犯的乙個錯誤吧,插入一萬條就呼叫一萬次insert,相當於每次操作都是乙個transaction,這種肯定會慢死。一次性插入就好了,相當於只是乙個transaction。

當然,要是你們的資料庫跑在賽揚機器上,然後上面還有人開各種軟體不停下片什麼的,那就是我錯怪你們技術了。

5樓:by wang

如果你描述正確。。那麼這個程式設計師是在扯犢子。只要不是同時開一萬個程序插入,這種1萬個,還是同步插入簡直,就是慢點。

還有個操作叫你bulk insert。1萬條應該常規雲服務基本一秒內就可以了。

6樓:懸壺醉世

我們要做幾個事情~~~

首先:1.使用生產者消費者模式。。。。產生一定資料量執行完了之後再生成,這樣可以保證JVM的空間足夠。

2.給你JVM擴大記憶體空間。。。必須的~~3.使用批量建立SQL。。。一條insert語句可以插入多條資料的。。。

4.使用批量提交的JDBC工具。。。一次提交多少條看自己喜歡5.開啟主動管理事務。。減少commit數量。。。。。

我一年前二面的面試題是千萬資料的插入查詢占用資源統計~~~你們技術是5k水準麼?

7樓:兆波

卡死的原因不是建立多少條,而是建立方式問題。

for迴圈卡死,根本原因是沒有限制資源使用,cpu或者記憶體直接懟到100%,能不卡死嗎?

如果你限制最大資源用量為20%cpu,40%記憶體,就算你for一億條,頂多也就是世間長點。

8樓:HylaruCoder

看具體情況吧

假如該錶和其他表關聯不是很大, 則很容易解決如果每一條記錄都需要計算, 則相對慢一點. 需要走 Batch 處理.

寫 for 迴圈卡死的概率相對比較低, 具體也取決於具體的業務場景

9樓:聊點原始碼

建立百萬資料也不是同一時間一次性全部插入的,比如採用批處理,非同步執行,批量的操作由於資料庫的緩衝池會被快速打滿 ,這時候也會產生大量的redolog,同時會將快取裡面的資料寫入磁碟,導致CPU和IO飆高

10樓:oberon

正常操作不會,資料庫本來就是堆資料的位置,不會因為這麼點資料量崩潰。程式卡死簡單的理解只是介面失去響應不代表沒幹活。這兩點都是很容易解決的問題,不要被你們的技術忽悠了

11樓:

技術人員經驗不夠?

這個問題大概率是中間處理過程產生了大量的中間資料,沒有及時清理,記憶體耗盡。以前沒經驗,大約批量新增2K的資料就卡死。後來多成多步的,大約1K資料就存入資料庫,清理一下中間變數,該提交的提交,該關閉的關閉,現在百萬級資料也不會卡死。

AutoCAD 如何批量列印?

主要是利用CAD的發布功能 教程如下 jingyan.baidu.com article 624e7459a1c1e134e9ba5a59.html不難,自己琢磨會了,以後無憂。 可以試一下這個軟體 探索者軟體批量列印軟體,專門用於AutoCAD批量列印,可以批量把多張DWG上面的多個圖框一次列印出...

如何批量列印PDF?

搜遍全網,大部分要安裝乙個軟體 有些小眾軟體要收費!其實免費版的福昕印表機就有批量列印 或者把多個PDF合併成乙個PDF再列印,剛同事發現乙個更簡單的方法 開啟 裝置和印表機 雙擊開啟要列印文件的印表機,彈出印表機視窗後將要列印的檔案拖入任務列表!很簡單,有沒有! 陳芸 批量化的列印PDF文件是可以...

正版 CAD 如何批量列印?

kedora 看來有必要專門開乙個課程,關於autocad的列印的total solution。等我開課吧 這個課程的價值絕對不會是僅僅30元。 浩辰CAD批量列印工具 發布 的使用教程 實際上如果你能規範作圖 合理設定,浩辰CAD軟體本身就提供了一種可以批量列印的工具 發布 Publish 發布提...