首頁 資料庫 mysql教程 MYSQL之插入极限分析

MYSQL之插入极限分析

Jun 07, 2016 pm 05:55 PM
插入

MYSQL之插入极限分析,需要的朋友可以参考下

1、如果同时从同一个客户端插入很多行,使用含多个 VALUE的INSERT语句同时插入几行。这比使用单行INSERT语句快(在某些情况下快几倍)。如果你正向一个非空表添加数据,可以调节 bulk_insert_buffer_size变量,使数据插入更快。参见5.3.3 节,“服务器系统变量”。

2、如果你从不同的客户端插入很多行,能通过INSERT DELAYED语句加快速度。参见13.2.4 节,“INSERT语法”。

3、用MyISAM,如果在表中没有删除的行,能在SELECT语句正在运行的同时插入行。

4、当从一个文本文件装载一个表时,使用LOAD DATA INFILE。这通常比使用很多INSERT语句快20倍。参见13.2.5 节,“LOAD DATA INFILE语法”。

5、当表有很多索引时,有可能要多做些工作使得LOAD DATA INFILE更快些。使用下列过程:

1). 有选择地用CREATE TABLE创建表。
2). 执行FLUSH TABLES语句或命令mysqladmin flush-tables。
3). 使用myisamchk --keys-used=0 -rq /path/to/db/tbl_name。这将从表中取消所有索引的使用。
4). 用LOAD DATA INFILE把数据插入到表中,因为不更新任何索引,因此很快。
5). 如果只想在以后读取表,使用myisampack压缩它。参见15.1.3.3 节,“压缩表特性”。
6). 用myisamchk -r -q /path/to/db/tbl_name重新创建索引。这将在写入磁盘前在内存中创建索引树,并且它更快,因为避免了大量磁盘搜索。结果索引树也被完美地平衡。
7). 执行FLUSH TABLES语句或mysqladmin flush-tables命令。

6、锁定表可以加速用多个语句执行的INSERT操作:

* LOCK TABLES a WRITE;
* INSERT INTO a VALUES (1,23),(2,34),(4,33);
* INSERT INTO a VALUES (8,26),(6,29);
* UNLOCK TABLES;

这样性能会提高,因为索引缓存区仅在所有INSERT语句完成后刷新到磁盘上一次。一般有多少INSERT语句即有多少索引缓存区刷新。如果能用一个语句插入所有的行,就不需要锁定。

对于事务表,应使用BEGIN和COMMIT代替LOCK TABLES来加快插入。
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1422
52
Laravel 教程
1316
25
PHP教程
1267
29
C# 教程
1239
24
使用SQL中的MINUS操作符 使用SQL中的MINUS操作符 Feb 18, 2024 pm 04:53 PM

SQL中MINUS的用法及具體程式碼範例在SQL中,MINUS是一種用於在兩個結果集之間執行差集操作的運算子。它用於從第一個結果集中刪除與第二個結果集中相同的行。 MINUS操作符傳回的結果集將包含僅存在於第一個結果集中的行。下面透過具體的程式碼範例來示範MINUS的用法:假設有兩個表-"table1"和"table2",它們的結構如下:表名:table1字段

我們可以在Java列表中插入空值嗎? 我們可以在Java列表中插入空值嗎? Aug 20, 2023 pm 07:01 PM

SolutionYes,Wecaninsertnullvaluestoalisteasilyusingitsadd()method.IncaseofListimplementationdoesnotsupportnullthenitwillthrowNullPointerException.Syntaxbooleanadd(Ee)將指定的元素追加到此清單末尾的元素。類型參數E −元素的運行時類型。參數e −要追加到此列表的元

wps文檔插入中國地圖的圖文方法 wps文檔插入中國地圖的圖文方法 Mar 27, 2024 pm 02:01 PM

1.開啟wps軟體,進入wps文字的操作介面。 2、在該介面內找到插入選項。 3.點選插入選項,在其編輯區域內找到形狀選項。 4.點選形狀選項,在其子級選單中找到推薦選項。 5、在推薦選項內找到中國地圖選項。 6.點選中國地圖選項,用滑鼠左鍵在編輯輸入區裡拖曳,就得到了我們需要的中國地圖。

ppT文件中插入另一個ppt文檔的操作方法 ppT文件中插入另一個ppt文檔的操作方法 Mar 26, 2024 pm 02:36 PM

1、開啟要新增檔案的PPT。 2、翻到要插入ppt文件的那一頁。 3.在選單列中選擇【插入】-------【物件】。 4.彈出【插入物件】對話框。操作方法一:選擇新建在對話方塊中選擇【MicrosoftOfficePowerPoint簡報】點選【確定】後,就可以再新建的空白文件方塊增加內容即可操作方法二、選擇由檔案建立點選對話方塊中的【瀏覽】,找到需要插入的檔案最後,點選【確定】即可

使用PHP函數 'array_unshift' 將元素插入陣列的起始位置 使用PHP函數 'array_unshift' 將元素插入陣列的起始位置 Jul 25, 2023 pm 03:39 PM

使用PHP函數"array_unshift"將元素插入陣列的起始位置PHP是廣泛使用的伺服器端腳本語言,用於建立動態網頁。在PHP中,陣列是一種非常重要的資料結構,用於儲存和操作一組資料。有時候我們需要在陣列的起始位置插入一個元素,這時就可以使用PHP內建函數"array_unshift"。 "array_unshift"函數的作用

如何實作MySQL中插入多行資料的語句? 如何實作MySQL中插入多行資料的語句? Nov 08, 2023 pm 09:54 PM

如何實作MySQL中插入多行資料的語句?在MySQL中,有時我們需要一次插入多行資料到表中,這時我們可以使用INSERTINTO語句來實作。以下將介紹如何使用INSERTINTO語句來插入多行數據,並給出具體的程式碼範例。假設我們有一個名為students的表,包含id、name和age字段,現在想要一次插入多條學生的信息,我們可以按照以下步驟來實現:

Python程式將多個元素插入陣列中的指定索引位置 Python程式將多個元素插入陣列中的指定索引位置 Sep 03, 2023 pm 10:13 PM

數組是以有組織的方式儲存的同類資料元素的集合。數組中的每個資料元素都由索引值來標識。 Python中的陣列Python沒有原生的陣列資料結構。因此,我們可以使用列表資料結構來取代數組。 [10,4,11,76,99]同時我們可以使用PythonNumpy模組來處理陣列。由numpy模組定義的陣列是−array([1,2,3,4])Python中的索引從0開始,因此可以使用各自的索引值來存取上述陣列元素,如0、1、2、直到n -1。在下面的文章中,我們將看到在指定索引處插入多個元素的不同方法。輸入輸

在C++中遞歸插入和遍歷鍊錶 在C++中遞歸插入和遍歷鍊錶 Sep 10, 2023 am 09:21 AM

我們得到了用於形成鍊錶的整數值。任務是使用遞歸方法先插入然後遍歷單鍊錶。在末尾遞歸新增節點如果head為NULL→將節點加入head否則加入head(head→next)遞歸遍歷節點如果head為NULL→退出否則列印(head→next)範例輸入−1-2-7-9 -10輸出輸出strong>−鍊錶:1→2→7→9→10→NULL輸入−12-21-17-94-18輸出−鍊錶:12→21→17→94→18→NULL下面程式中使用的方法如下在這種方法中,我們將使用函數新增節點並遍歷單鍊錶並遞

See all articles