1. 程式人生 > >MySql Innodb引擎 資料表 上萬條資料連續插入優化

MySql Innodb引擎 資料表 上萬條資料連續插入優化

innodb_flush_log_at_trx_commit 

設定為0 的時候,Log Thread 會在每次事務結束的時候將資料寫入事務日誌,mysql每秒執行一次,mysql崩潰,則會丟失資料。

設定為1 的時候,Log Thread 會在每次事務結束的時候將資料寫入事務日誌,並flush寫入磁碟。

設定為2 的時候,Log Thread 會在每次事務結束的時候將資料寫入事務日誌,但是這裡的寫入僅僅是呼叫了檔案系統的檔案寫入操作。系統會每秒執行flush寫入磁碟,系統崩潰的時候才會丟失資料。

測試:

innodb_flush_log_at_trx_commit = 1:5000條資料插入耗時40s


innodb_flush_log_at_trx_commit =2 :5000條資料插入耗時1s,25000條資料,耗時4s多。

相關推薦

MySql Innodb引擎 資料 上萬資料連續插入優化

innodb_flush_log_at_trx_commit  設定為0 的時候,Log Thread 會在每次事務結束的時候將資料寫入事務日誌,mysql每秒執行一次,mysql崩潰,則會丟失資料。 設定為1 的時候,Log Thread 會在每次事務結束的時候將資料寫入

MySQL innodb引擎下根據.frm和.ibd檔案恢復結構和資料

  一次恢復資料庫表結構和資料的實戰,僅以此貼作為記錄。   由於,前幾天我們使用的資料庫被入侵(順便鄙視一下安全管理人員),資料庫中的表都顯示不存在(僅剩一個黑客自建的----qq_xxxxx的表,但物理檔案都在,例如:.frm、.ibd檔案等)。因此,產生了這次恢復表結

java程式碼實現MySQL資料庫千萬資料去重

  準備工作: 1.資料庫表:datatest5 2.欄位: id 主鍵自增,val 重複值欄位併為val建立索引 3.設定innodb緩衝池大小 show variables like "%_buffer%"; SET GLOBAL innod

mysql引擎資料型別

一,資料儲存引擎 什麼是引擎?一個功能的核心部分 引擎可以被分類  而為什麼要分類呢?    需求場景的不同催生了不同的引擎分類 在mysql中,核心功能是儲存資料,涉及到儲存資料的程式碼,就稱之為儲存引擎 根據不同的需求,也有著不同的引擎分類 不同的引擎測試:

mysql innodb引擎 長時間使用後,資料檔案遠大於實際資料量,導致空間不足。

近期我碰到了一個令人頭疼的事情。就是我的mysql伺服器使用了很久之後,發現/data  目錄的空間佔滿了我係統的整個空間,馬上就要滿了。下面是我的分析。 在網上查看了這2個方法,但是執行後發現沒有解決。系統空間沒有變小。 1.optimize table table.n

(轉)mysql 批量插入上萬資料 inserts 需要配置

批量插入資料量過大,解決辦法修改 my.ini 加上 max_allowed_packet =6710886467108864=64M預設大小4194304  也就是4M修改完成之後要重啟mysql服務,如果通過命令列修改就不用重啟mysql服務。命令修改:(即時生效)正確寫

c#中往mysql裡批量插入上萬資料

前面文章說採集了很多資料,要存入mysql資料庫。之所以選擇mysql資料庫,原因只不過是mysql很方便安裝應用範圍也廣,又小,也挺好用。呵呵 我仍然在csdn詢問,http://bbs.csdn.net/topics/390357952?page=1#post-3935

關於mysql上萬資料同時插入時的效能優化

  $code = new Code(); foreach ($codeModel as $v) { $_code = clone $code; $_code->rid = $rid; $_code->created_at = time();

left join 右資料重複

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

踩坑經歷(七)MySQL匯出生產環境結構和資料

在命令列視窗下執行即可 編號 需求 SQL 1 匯出資料庫為dbname的表結構(其中使用者名稱為root,密碼為dbpasswd,生成的指令碼名為db.sql) my

wamp 中mysql資料儲存中文資料查詢後變成 ’???’

這個問題弄了好長時間,總是會變成??? 每次一查詢就是下面這樣,改了好多東西也不對; 網上查了很多辦法,現在給大家總結一下; 開啟wamp中mysql的配置檔案my.ini 找到下面的位置進行更改 由於網上很多辦法都是在【mysqld】下新增charac

mysql怎樣高效率隨機獲取n資料

ID連續的情況下(注意不能帶where,否則結果不好): SELECT * FROM `mm_account` AS t1 JOIN ( SELECT ROUND( RAND() * ( SELECT MAX(id) FROM `mm_acco

mysql 匯入excel資料成功,但資料中80%資料都變成了2147483647解決方案

       在網上搜索了一下原因:被插入的mysql資料表的欄位型別為int(11),問題就是欄位型別長度不過,導致插入錯誤。 解決方案:(1)把欄位的型別int改為varchar(255) (如果允許的情況),這是我自己當時的做法                  (2

用命令 從mysql中 匯出/匯入結構及資料

在命令列下mysql的資料匯出有個很好用命令mysqldump,它的引數有一大把,可以這樣檢視:mysqldump 最常用的:mysqldump -uroot -pmysql databasefo

mysql 資料庫rand() 隨機查詢10資料 整理

網上找了好多看了還不是很明白,為了專案進度拿過來直接用。害怕以後還需要。好找一些,放在這裡。若要在i ≤ R ≤ j 這個範圍得到一個隨機整數R ,需要用到表示式 FLOOR(i + RAND() * (j – i + 1))。例如, 若要在7 到 12 的範圍(包括7和12

MYSQL查詢每個分類的第一資料

name score type 張三 89 1 李四 58 1 王五 80 2 馬六 35 2 周七 95 3 要求查詢結果為: name score type 張三 8

MySql 從一張查詢的資料賦值給另外一張的欄位(MySQL Update Query using a left join)

舉慄: 我們的使用者積分出現重複資料,然後我們要把重複資料刪除掉,重新計算使用者總積分,假設所有積分都是增加的積分。 使用者積分表test_user_points 使用者iduser_id 使用者積分總

mysql 查詢多個型別多資料並彙總

需求:查詢多天的不同型別的每天最大的pv值  並 group by 每天的彙總量(即不同型別每天的相加總量) 由於環境需要,必須要這麼做,在之前的基礎上優化了下sql 一條就解決了: 子查詢: 1:select max(total_gv) as max_total_gv,

mysql資料庫-----從一個中複製資料和結構到另一個

一.從一個表複製結構到另一個表 create table t_emp select * from emp where 1=2; emp表 t_emp表----只複製了emp表的結構 二.從一個表複製結構和資料到另一個 create table t_emp selec

C#一次性向資料庫插入上萬資料的方法

一次性插入上萬條資料的寫法 1. /// <summary>  /// DataTable批量新增(有事務)  /// </summary> / // <param name="Table">資料來源</param>