MySQL的insert、replace和update语句执行效率
(2010-02-03 15:37:48)
标签:
linuxmysqlit |
分类: 数据库技术 |
测试insert、replace和update语句执行效率
测试程序
#include <stdio.h>
#include <stdlib.h>
#include <string>
#include <iostream>
#include <time.h>
#include "/usr/local/include/mysql/mysql.h"
using namespace std;
MYSQL mysql;
void exiterr(int exitcode)
{
}
// create ip, from 10.0.0.0~10.0.255.255
void init_ip()
{
}
int main()
{
}
表结构:
CREATE TABLE gtpDB.test_data(
) TYPE=MyISAM;
操作数据表数据条数:65536
1、insert测试
2、replace测试
使用REPLACE插入一条记录时,如果不重复,REPLACE就和INSERT的功能一样,如果有重复记录,REPLACE就使用新记录的值来替换原来的记录值。使用REPLACE的最大好处就是可以将DELETE和INSERT合二为一,形成一个原子操作。这样就可以不必考虑在同时使用DELETE和INSERT时添加事务等复杂操作了。在使用REPLACE时,表中必须有唯一有一个PRIMARY KEY或UNIQUE索引,否则,使用一个REPLACE语句没有意义。
2.1、表空时的测试
2.2、表不空时的操作,即此时有65536条数据
3、update测试
insert_sql = "update test_data set mobilenum='13200000003' where ip='" + ip + "'";
执行时间:15s
【结论】:replace效率不错,且概括了insert和delte/insert功能。