久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

千鋒教育-做有情懷、有良心、有品質的職業(yè)教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > MySQL批量插入數(shù)據(jù)為什么比逐個插入效率高?

MySQL批量插入數(shù)據(jù)為什么比逐個插入效率高?

來源:千鋒教育
發(fā)布人:xqq
時間: 2023-10-11 22:57:36 1697036256

一、MySQL批量插入數(shù)據(jù)為什么比逐個插入效率高

數(shù)據(jù)庫的一個插入動作,包含了連接,傳輸,執(zhí)行,提交/回滾 等等的動作,在 執(zhí)行的時候可能還會遇到鎖表,等待等等,所以,批量插比逐個插效率高,是大部分情況,而不是絕對情況。

大部分情況下,批量插和逐個插,在執(zhí)行層面,耗時接近;而不用多次連接數(shù)據(jù)庫,在數(shù)據(jù)傳輸層面,也是一次性傳輸效率高(網(wǎng)絡傳輸和這個模型類似,也有很多前置后置過程),而提交,也是只發(fā)起了一次,因而顯得效率高。

在特殊情況下,比如插入的數(shù)據(jù)是業(yè)務表,每行的數(shù)據(jù)量較大,且該表訪問頻繁,那么,插入1條的時候可能不會鎖表,而插入10000行的時候,會遇到鎖表的情況。如果并發(fā)插入,甚至發(fā)生死鎖。這個時候,就要根據(jù)經驗分析,調整每個批次的量,以避免影響使用。

舉個例子:

begin:

insert into ( (‘a’) , (‘b’) …);

commit;

這樣批量提交和

insert into(‘a’) ;

insert into (‘b’);

看上去也不需要多久,你看看非編譯型的語言php,js幾乎都不需要多久,你10w行sql對應其他代碼的parser,你想想一個10wjs需要編譯很久嗎?也不需要很久。

延伸閱讀:

二、什么是Memory引擎

Memory引擎是Mysql的內存引擎,在實現(xiàn)上,Memory存儲引擎不同于Innodb這種組織索引結構(索引即是數(shù)據(jù),即數(shù)據(jù)存放在主鍵索引上),而是將索引和數(shù)據(jù)分開存儲。索引采用Hash的形式,存放主鍵id和指向數(shù)據(jù)的指針,而數(shù)據(jù)則按插入順序存放。我們稱這種數(shù)據(jù)組織方式為堆組織方式。

聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業(yè)內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT