關於多執行緒對mysql資料庫插入操作的疑問

2022-06-06 19:31:29 字數 1355 閱讀 9758

1樓:元小翠

資料庫有自己的連線鎖機制,如果是針對同一臺機器使用同一個介面進行插入的話多執行緒和單執行緒是一樣的。除非你有好幾臺資料庫伺服器,這樣再使用多執行緒來進行上面的工作的話效率才會明顯提高。

j**a多執行緒同時插入mysql中的一張表,是否可行?

2樓:

資料庫有自己的連線鎖機制,如果是針對同一臺機器使用同一個介面進行插入的話多執行緒和單執行緒是一樣的。除非你有好幾臺資料庫伺服器,這樣再使用多執行緒來進行上面的工作的話效率才會明顯提高。

3樓:

應該不會。如果可以保證滿足約束條件,可以先把b表的約束條件去掉,如索引 唯一約束等。這樣快些。儘量批量提交,不要使用長事務。

4樓:匿名使用者

1)不會產生死鎖;

2)對資料庫而言,效能應該是一樣的;

5樓:捷彩

試一下不就知道啦~~~其實我也很想知道!

要瘋了,怎樣用多執行緒向mysql資料庫中寫入資料

mysql多執行緒併發操作同一張表同一個欄位的問題有什麼辦法解決嗎?被操作的欄位都建立了普通索引。

6樓:

可以用樂觀鎖方案解決

在表裡增加個欄位,版本號

每次更新前先從資料庫裡獲取這個版本號的值,然後更新時要同步更新版本號+1,並且增加更新條件版本號=查詢出來的值。

因為更新時每次只可能有一個執行緒更新到資料,等到另外一個執行緒再去更新資料的時候版本號已經+1了,所以會更新失敗,重新獲取版本號再走更新流程,這樣就解決了多執行緒併發更新被覆蓋的問題。

而且樂觀鎖機制避免了長事務中的資料庫加鎖開銷(多個執行緒操作過程中,都沒有對資料庫資料加鎖),大大提升了大併發量下的系統整體效能表現。

關於c#多執行緒操作mysql資料庫問題,求大神幫忙。

7樓:

connection物件本來就是要用完即關閉的,大多數資料庫都實現了各自的連線池,始終會從活動連線中挑選可用連線給呼叫方,認為影響效率,只是你自己的想法。

請問mysql資料庫是不能多執行緒寫入嗎? 10

8樓:

不是,mysql做資料庫操作時會鎖表,鎖表方式和表引擎有關,如myisam是表級鎖,innodb是行鎖

多個執行緒操作一個mysql連線

9樓:匿名使用者

不能同時對資料庫進行操作。。同時查詢還可以,同時增刪改是肯定不行的

mysql資料庫怎樣建立表,MYsql資料庫怎樣建立表?

比如要建立學生表表名為student,學生表有欄位學號 no 年齡 age create table student no int primary key 主鍵 age int 執行下就建立好了 隨便舉的例子,明白吧?謝謝採納!create database cookbook 建立一個叫 cookb...

mysql資料庫輸出不了換行,MYSQL輸出的內容為什麼不換行,也沒空格?

你存資料庫的時候存錯了,欄位如果是文字型的,會把一些標籤給去掉的,建議存成二進位制的看看。你也可以再設計表的時候,問題一個欄位,a選項一個欄位,b選項一個欄位,c選項一個欄位,顯示的時候自己控制。核心就是存的過程,mysql是儲存資料的,不是用來顯示分析和處理資料的,顯示的工作還得由其他程式語言來完...

mysql資料庫表用什麼做主鍵,mysql設定主鍵的程式碼是什麼?

1 主鍵定義 表中經常有一個列或多列的組合,其值能唯一地標識表中的每一行。這樣的一列或多列稱為表的主鍵,通過它可強制表的實體完整性。當建立或更改表時可通過定義 primary key 約束來建立主鍵。一個表只能有一個 primary key 約束,而且 primary key 約束中的列不能接受空值...