环境:
1.pentium(R)4 cpu 2.00GB、512MB内存、西数IDE WD800硬盘。
2.RedHat AS4
3.将默认IO支持改为32位,传输模式设为DMA。
hdparm -c1 –d1 /dev/hda
4.mysql4.0.20
过程:
创建库名school,表名teacher。
使用C库函数,插 入大小为4K的记录。记录内容都为1,类型为text。
在插 入不同条数时的性能指数如下:
条数 大小(M) 时间(S)
10000 40 2
20000 80 3
200000 800 50
附件:
附测试程序和Makefile文件:
1.mysql.c
#include <stdio.h>
#include <sys/time.h>
#include <stdlib.h>
#include <string.h>
#include <mysql/mysql.h>
#define TEXT_LEN 4096
#define MAX_LEN 8000
#define INSERT_QUERY "insert into teacher values('', 'test', 'test', '1976-02-18','%s' )"
int main(int argc, char **argv)
{
int count = 0;
int num = 0;
MYSQL *sock = NULL;
MYSQL mysql;
struct timeval time_bef;
struct timeval time_after;
char *content = (char *) malloc(TEXT_LEN);
memset(content, 1, TEXT_LEN);
char *strsql = (char *)malloc(MAX_LEN);
sprintf(strsql, INSERT_QUERY, content);
memset((char *)&time_bef, 0x00, sizeof(struct timeval));
memset((char *)&time_after, 0x00, sizeof(struct timeval));
if (argc != 3) {
printf("usage : insert_test <dbname> <Num>/n/n");
goto err;
}
mysql_init(&mysql);
sock = mysql_real_connect(&mysql, NULL, NULL, NULL,
argv[1], 0, NULL, 0);
if (!sock) {
printf("Couldn't connect to engine!/n%s/n",
mysql_error(&mysql));
goto err;
}
num = atoi(argv[2]);
count = 0;
gettimeofday(&time_bef, NULL);
while (count < num) {
if (mysql_query(sock, strsql)) {
printf("Query failed (%s)/n",
mysql_error(sock));
goto err;
}
count++;
}
gettimeofday(&time_after, NULL);
printf("time:%d/n",
(int)(time_after.tv_sec-time_bef.tv_sec));
free(content);
free(strsql);
mysql_close(sock);
err:
free(content);
free(strsql);
exit(1);
}
2.Makefile:
#!/usr/bin
CC=gcc
CFLGS_C=-g -c -Wall
CFLGS_O=-g -o
SRC=mysql.c
OBJ=mysql.o
BIN=mysql_test
LIBDIR=/usr/local/mysql/lib/mysql/
lib=-lnsl -lm -lmysqlclient
$(BIN):$(OBJ)
$(CC) $(CFLGS_O) $(BIN) $(OBJ) -L$(LIBDIR) $(lib)
$(OBJ):$(SRC)
$(CC) $(CFLGS_C) $(SRC)
clean:
rm -rf $(OBJ)
rm -rf $(BIN)
rm -rf core
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/mimeme/archive/2005/04/25/362223.aspx