一、多線程并發訪問數據庫中不同記錄時應該采用什么辦法
關系型數據庫基本已經解決你的問題了。數據庫有行級鎖。
注意以下都是一個事務內包含了多個線程并發訪問時候的一些建議,多線程程序一般都是開在同一個事務點上,所以才有下面的一點建議。
但設計的程序的時候還是很有難度的。
一個事務內的多個線程,盡量別交叉執行,分兩部分執行,部分1 讀數據庫 部分2 寫數據庫。
先讀后寫,如果業務允許的話。這樣可以有效避免很多障礙,甚至很解決不了的坑。
(比如一個寫線程還沒提交,一個大的讀線程恰巧導致寫線程無法提交,等待讀線程完成才會提交,會照成很長時間的鎖等待,一堵塞,就很容易產生數據庫假死。)
對于一個事務內的多個線程,有時候臟讀是合理的情況下,一定要合理利用,這樣可以避免無法分成讀寫兩部分執行而產生等待的問題,比如可以提前在寫隊列里面提前commit,那么讀的部分完全可以異步,首先要確認業務是否可行,要不就會出錯數據,這地方是個鋼絲繩。
也就是,題主不要認為多線程可以完全異步,那樣成本和設計難度是幾何上升的(關系型數據庫幾乎不太可能)。
異步和同步混用,可以考慮采用隊列等數據結構來進行多線程控制順序。
延伸閱讀:
二、Power BI是什么
Power BI(power business intelligence)是軟件服務、應用和連接器的集合,它們協同工作以將相關數據來源轉換為連貫的視覺逼真的交互式見解。 無論用戶的數據是簡單的 Excel 電子表格,還是基于云和本地混合數據倉庫的集合,Power BI 都可讓用戶輕松地連接到數據源,直觀看到(或發現)重要內容,與任何所希望的人進行共享。
Power BI 簡單且快速,能夠從 Excel 電子表格或本地數據庫創建快速見解。 同時 Power BI 也可進行豐富的建模和實時分析,及自定義開發。 因此它既是用戶的個人報表和可視化工具,還可用作組項目、部門或整個企業背后的分析和決策引擎。