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来加快插入。

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

SublimeText3漢化版
中文版,非常好用