InnoDBInsert(插入)操作(下)

2022-04-08 21:18:40 字數 645 閱讀 4008

接上一篇文章,最後做的那個實驗,我是想證明mysql innodb儲存引擎,commit操作與flush資料到磁碟之間的關係,當與同事交流之後,他說,你應該把innodb_buffer_size的大小考慮到裡面,其實我是有考慮的,在開始的部分就有做過假設,假如buffer大小為1g,資料大小為2g,那麼在進行事務插入操作時,勢必是要在commit操作之前,將快取資料進行寫入磁碟的吧。

再者而言,接上篇實驗,我分別進行了兩組,一組是進行了rollback操作,另外一組是進行了commit,發現,rollback的操作時間遠遠大於commit操作的。是否可以假象為,其實資料已經落盤,只不過在資料頁面上,存在乙個事務識別符號,實現事務的隔離機制,對於其他session不可見。而此時rollback操作就要把資料一條一條的從磁碟中清除,這個速度肯定會比較緩慢,當然這個刪除的機制,我還是不太清楚,是重新走一邊buffer,還是直接消失掉;而且,在進行了rollback操作之後,資料檔案大大小並沒有改變,是否可以假象為,曾經分配的物理空間,並沒有及時收回,以便下次重新利用。再說commit操作,它是在極短的時間內完成的,有可能的原因就是,這個操作只是把磁碟中資料頁上的事務標識資訊移除掉,就ok了。好吧,秉著嚴謹的實驗態度,再來進行一次實驗。(下班回去再做吧)

innodb_buffer_size= ,確保足夠新插入資料的緩衝。

MyBatis批量插入 insert 資料操作

在程式中封裝了乙個list集合物件,然後需要把該集合中的實體插入到資料庫中,由於專案使用了spring mybatis的配置,所以打算使用mybatis批量插入,由於之前沒用過批量插入,在網上找了一些資料後最終實現了,把詳細過程貼出來。實體類trainrecord結構如下 1 2 3 4 5 6 7...

oracle的主鍵與mybatis插入操作的矛盾

今天寫乙個簡單的提交操作時,一直一直一直通過不了,首先是蠢蠢的把url搞錯了,後來就是遇到了經常遇到的資料庫欄位不匹配的問題。仔細檢查了資料庫的表字段,把不能為空的相應字段加上allowblank false 屬性 公司封裝框架 再後來,就遇到了mybatis的插入操作,主鍵要自動生成,而不是自己填...

mysql 插入刪除操作 MySQL 增刪改操作

插入語句 一次插入操作只插入一行資料 insert into tablename listname1,listname2,values value1,value2,插入一條資料 insert into t students id,name,age values 10,敏敏 24 插入多條資料mysq...