- 一條SQL語句插入多條數(shù)據(jù)丙猬。
常用的插入語句如:
INSERT INTO `insert_table` (`datetime`, `uid`, `content`, `type`) VALUES ('0', 'userid_0', 'content_0', 0);
INSERT INTO `insert_table` (`datetime`, `uid`, `content`, `type`) VALUES ('1', 'userid_1', 'content_1', 1);
修改成:
INSERT INTO `insert_table` (`datetime`, `uid`, `content`, `type`) VALUES ('0', 'userid_0', 'content_0', 0), ('1', 'userid_1', 'content_1', 1);
修改后的插入操作能夠提高程序的插入效率璃岳。這里第二種SQL執(zhí)行效率高的主要原因有兩個,一是減少SQL語句解析的操作剿配, 只需要解析一次就能進(jìn)行數(shù)據(jù)的插入操作荸镊,二是SQL語句較短咽斧,可以減少網(wǎng)絡(luò)傳輸?shù)腎O。
- 在事務(wù)中進(jìn)行插入處理躬存。
把插入修改成:
START TRANSACTION;
INSERT INTO `insert_table` (`datetime`, `uid`, `content`, `type`) VALUES ('0', 'userid_0', 'content_0', 0);
INSERT INTO `insert_table` (`datetime`, `uid`, `content`, `type`) VALUES ('1', 'userid_1', 'content_1', 1);
...
COMMIT;
使用事務(wù)可以提高數(shù)據(jù)的插入效率收厨,這是因為進(jìn)行一個INSERT操作時,MySQL內(nèi)部會建立一個事務(wù)优构,在事務(wù)內(nèi)進(jìn)行真正插入處理。通過使用事務(wù)可以減少數(shù)據(jù)庫執(zhí)行插入語句時多次“創(chuàng)建事務(wù)雁竞,提交事務(wù)”的消耗钦椭,所有插入都在執(zhí)行后才進(jìn)行提交操作拧额。
原文地址:http://blog.csdn.net/tigernorth/article/details/8094277