Insert 100000 tuples with or without index on ML
2009-08-19 19:13
706 查看
#include <stdio.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <sys/time.h>
#include "include/isql.h"
/////////////////////////////////////////////////////////////////////////////////////////////////////
//time caculation
long timecacul () {
struct timeval tv;
struct timezone tz;
gettimeofday(&tv,&tz);
return (tv.tv_sec * 1000 + tv.tv_usec / 1000);
}
/////////////////////////////////////////////////////////////////////////////////////////////////////
int main(int argc, char **argv)
{
iSQL isql;
long starttime, endtime, resulttime;
int i=0;
char query[2048];
if(!iSQL_connect(&isql,"127.0.0.1","minchul","sys","sys")){
printf("fail %s", iSQL_error(&isql));
return -1;
}
////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////create table
memset (query,0,2048);
//////// no -index
sprintf(query,"drop table index_test;");
if (iSQL_query(&isql,query)<0) {
iSQL_rollback(&isql);
fprintf(stderr, "error query: %s/n", query);
printf("error [%d] [%s]/n", iSQL_errno(&isql),iSQL_error(&isql));
printf("/n/nerror query 1: %s/n/n", query);
exit(1);
}
sprintf(query,"create table index_test(id int, name varchar(20));");
if (iSQL_query(&isql,query)<0) {
iSQL_rollback(&isql);
fprintf(stderr, "error query: %s/n", query);
printf("error [%d] [%s]/n", iSQL_errno(&isql),iSQL_error(&isql));
printf("/n/nerror query 1: %s/n/n", query);
exit(1);
}
//////////////////////////////////////////////////////////////////////////////
////////test the times of insert 100000
starttime=timecacul();
for (i=0; i<100000; i++)
{
sprintf(query,"insert into index_test values(%d,'ceshi%d');",i,i);
if (iSQL_query(&isql,query)<0) {
iSQL_rollback(&isql);
printf("fail %s", iSQL_error(&isql));
exit(1);
};
}
endtime=timecacul();
resulttime=endtime-starttime;
printf("no_index_insert_time : %dms./n",resulttime);
///////////////////////////////////////////////////////////////////////////////
////////test the times of searching one tuple in 10000 without index
starttime=timecacul();
sprintf(query,"select * from index_test where name = 'ceshi96593';");
if (iSQL_query(&isql,query)<0) {
iSQL_rollback(&isql);
fprintf(stderr, "error query: %s/n", query);
printf("error [%d] [%s]/n", iSQL_errno(&isql),iSQL_error(&isql));
printf("/n/nerror query 1: %s/n/n", query);
exit(1);
}
endtime=timecacul();
resulttime=endtime-starttime;
printf("no_index_search_time : %dms./n",resulttime);
iSQL_commit(&isql);
//////////////////////////////////////////////////////////////////////////////
///////create table 2
sprintf(query,"drop table index_test1;");
if (iSQL_query(&isql,query)<0) {
iSQL_rollback(&isql);
fprintf(stderr, "error query: %s/n", query);
printf("error [%d] [%s]/n", iSQL_errno(&isql),iSQL_error(&isql));
printf("/n/nerror query 1: %s/n/n", query);
exit(1);
}
sprintf(query,"create table index_test1(id int, name varchar(20));");
if (iSQL_query(&isql,query)<0) {
iSQL_rollback(&isql);
fprintf(stderr, "error query: %s/n", query);
printf("error [%d] [%s]/n", iSQL_errno(&isql),iSQL_error(&isql));
printf("/n/nerror query 1: %s/n/n", query);
exit(1);
}
//////////////////////////////////////////////////////////////////////////////////////
////////////create index idx_name on index_test1
//////////Tree - changing
sprintf(query,"create index idx_name on index_test1(name)");
if (iSQL_query(&isql,query)<0) {
iSQL_rollback(&isql);
printf("fail %s", iSQL_error(&isql));
exit(1);
};
starttime=timecacul();
for (i=0; i<100000; i++)
{
sprintf(query,"insert into index_test1 values(%d,'ceshi%d');",i,i);
if (iSQL_query(&isql,query)<0) {
iSQL_rollback(&isql);
printf("fail %s", iSQL_error(&isql));
exit(1);
};
}
endtime=timecacul();
resulttime=endtime-starttime;
printf("index_insert_time : %dms./n",resulttime);
////////////////////////////////////////////////////////////////////////////////
////////test the times of searching one tuple in 100000 with index
starttime=timecacul();
sprintf(query,"select * from index_test1 where name = 'ceshi96593';");
if (iSQL_query(&isql,query)<0) {
iSQL_rollback(&isql);
fprintf(stderr, "error query: %s/n", query);
printf("error [%d] [%s]/n", iSQL_errno(&isql),iSQL_error(&isql));
printf("/n/nerror query 1: %s/n/n", query);
exit(1);
}
iSQL_commit(&isql);
/*
//Tree - non changing
sprintf(query,"create index idx_id on index_test(id)");
if (iSQL_query(&isql,query)<0) {
iSQL_rollback(&isql);
printf("fail %s", iSQL_error(&isql));
exit(1);
};
*/
endtime=timecacul();
resulttime=endtime-starttime;
printf("index_search_time : %dms./n",resulttime);
iSQL_disconnect(&isql);
return 0;
}
[db@localhost sqlite3]$ gcc index_ml.c -o index_ml -L/home/db/mobilelite/lib -lmobiledbms -lpthread -lnsl -lm
[db@localhost sqlite3]$ ./index_ml
no_index_insert_time : 1811ms.
no_index_search_time : 0ms.
index_insert_time : 4500ms.
index_search_time : 8ms.
[db@localhost sqlite3]$ ./index_ml
no_index_insert_time : 1766ms.
no_index_search_time : 0ms.
index_insert_time : 4513ms.
index_search_time : 8ms.
[db@localhost sqlite3]$ ./index_ml
no_index_insert_time : 1789ms.
no_index_search_time : 0ms.
index_insert_time : 4316ms.
index_search_time : 8ms.
[db@localhost sqlite3]$ ./index_ml
no_index_insert_time : 1774ms.
no_index_search_time : 0ms.
index_insert_time : 4290ms.
index_search_time : 8ms.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <sys/time.h>
#include "include/isql.h"
/////////////////////////////////////////////////////////////////////////////////////////////////////
//time caculation
long timecacul () {
struct timeval tv;
struct timezone tz;
gettimeofday(&tv,&tz);
return (tv.tv_sec * 1000 + tv.tv_usec / 1000);
}
/////////////////////////////////////////////////////////////////////////////////////////////////////
int main(int argc, char **argv)
{
iSQL isql;
long starttime, endtime, resulttime;
int i=0;
char query[2048];
if(!iSQL_connect(&isql,"127.0.0.1","minchul","sys","sys")){
printf("fail %s", iSQL_error(&isql));
return -1;
}
////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////create table
memset (query,0,2048);
//////// no -index
sprintf(query,"drop table index_test;");
if (iSQL_query(&isql,query)<0) {
iSQL_rollback(&isql);
fprintf(stderr, "error query: %s/n", query);
printf("error [%d] [%s]/n", iSQL_errno(&isql),iSQL_error(&isql));
printf("/n/nerror query 1: %s/n/n", query);
exit(1);
}
sprintf(query,"create table index_test(id int, name varchar(20));");
if (iSQL_query(&isql,query)<0) {
iSQL_rollback(&isql);
fprintf(stderr, "error query: %s/n", query);
printf("error [%d] [%s]/n", iSQL_errno(&isql),iSQL_error(&isql));
printf("/n/nerror query 1: %s/n/n", query);
exit(1);
}
//////////////////////////////////////////////////////////////////////////////
////////test the times of insert 100000
starttime=timecacul();
for (i=0; i<100000; i++)
{
sprintf(query,"insert into index_test values(%d,'ceshi%d');",i,i);
if (iSQL_query(&isql,query)<0) {
iSQL_rollback(&isql);
printf("fail %s", iSQL_error(&isql));
exit(1);
};
}
endtime=timecacul();
resulttime=endtime-starttime;
printf("no_index_insert_time : %dms./n",resulttime);
///////////////////////////////////////////////////////////////////////////////
////////test the times of searching one tuple in 10000 without index
starttime=timecacul();
sprintf(query,"select * from index_test where name = 'ceshi96593';");
if (iSQL_query(&isql,query)<0) {
iSQL_rollback(&isql);
fprintf(stderr, "error query: %s/n", query);
printf("error [%d] [%s]/n", iSQL_errno(&isql),iSQL_error(&isql));
printf("/n/nerror query 1: %s/n/n", query);
exit(1);
}
endtime=timecacul();
resulttime=endtime-starttime;
printf("no_index_search_time : %dms./n",resulttime);
iSQL_commit(&isql);
//////////////////////////////////////////////////////////////////////////////
///////create table 2
sprintf(query,"drop table index_test1;");
if (iSQL_query(&isql,query)<0) {
iSQL_rollback(&isql);
fprintf(stderr, "error query: %s/n", query);
printf("error [%d] [%s]/n", iSQL_errno(&isql),iSQL_error(&isql));
printf("/n/nerror query 1: %s/n/n", query);
exit(1);
}
sprintf(query,"create table index_test1(id int, name varchar(20));");
if (iSQL_query(&isql,query)<0) {
iSQL_rollback(&isql);
fprintf(stderr, "error query: %s/n", query);
printf("error [%d] [%s]/n", iSQL_errno(&isql),iSQL_error(&isql));
printf("/n/nerror query 1: %s/n/n", query);
exit(1);
}
//////////////////////////////////////////////////////////////////////////////////////
////////////create index idx_name on index_test1
//////////Tree - changing
sprintf(query,"create index idx_name on index_test1(name)");
if (iSQL_query(&isql,query)<0) {
iSQL_rollback(&isql);
printf("fail %s", iSQL_error(&isql));
exit(1);
};
starttime=timecacul();
for (i=0; i<100000; i++)
{
sprintf(query,"insert into index_test1 values(%d,'ceshi%d');",i,i);
if (iSQL_query(&isql,query)<0) {
iSQL_rollback(&isql);
printf("fail %s", iSQL_error(&isql));
exit(1);
};
}
endtime=timecacul();
resulttime=endtime-starttime;
printf("index_insert_time : %dms./n",resulttime);
////////////////////////////////////////////////////////////////////////////////
////////test the times of searching one tuple in 100000 with index
starttime=timecacul();
sprintf(query,"select * from index_test1 where name = 'ceshi96593';");
if (iSQL_query(&isql,query)<0) {
iSQL_rollback(&isql);
fprintf(stderr, "error query: %s/n", query);
printf("error [%d] [%s]/n", iSQL_errno(&isql),iSQL_error(&isql));
printf("/n/nerror query 1: %s/n/n", query);
exit(1);
}
iSQL_commit(&isql);
/*
//Tree - non changing
sprintf(query,"create index idx_id on index_test(id)");
if (iSQL_query(&isql,query)<0) {
iSQL_rollback(&isql);
printf("fail %s", iSQL_error(&isql));
exit(1);
};
*/
endtime=timecacul();
resulttime=endtime-starttime;
printf("index_search_time : %dms./n",resulttime);
iSQL_disconnect(&isql);
return 0;
}
[db@localhost sqlite3]$ gcc index_ml.c -o index_ml -L/home/db/mobilelite/lib -lmobiledbms -lpthread -lnsl -lm
[db@localhost sqlite3]$ ./index_ml
no_index_insert_time : 1811ms.
no_index_search_time : 0ms.
index_insert_time : 4500ms.
index_search_time : 8ms.
[db@localhost sqlite3]$ ./index_ml
no_index_insert_time : 1766ms.
no_index_search_time : 0ms.
index_insert_time : 4513ms.
index_search_time : 8ms.
[db@localhost sqlite3]$ ./index_ml
no_index_insert_time : 1789ms.
no_index_search_time : 0ms.
index_insert_time : 4316ms.
index_search_time : 8ms.
[db@localhost sqlite3]$ ./index_ml
no_index_insert_time : 1774ms.
no_index_search_time : 0ms.
index_insert_time : 4290ms.
index_search_time : 8ms.
相关文章推荐
- DML with or without Index on ML(use Random())
- DML with or without Index on SQLite(use Random())
- Insert 10000 tuples with "BEGIN TRANSCATION" or no ON SQLite
- If one session has a shared or exclusive lock on record R in an index, another session cannot insert
- If one session has a shared or exclusive lock on record R in an index, another session cannot insert
- The good site to buy rs 2007 gold cheap on RSorder with pay by Paypal or Alipay without anyconfirmat
- Oracle11.2新特性之INSERT提示IGNORE_ROW_ON_DUPKEY_INDEX
- Use OSCache with or without fail over by Class GeneralCacheAdministrator
- You need to run build with JDK or have tools.jar on the classpath.
- Extending sparklyr to Compute Cost for K-means on YARN Cluster with Spark ML Library
- Sqoop学习笔记 --- sqoop import with primary_key , or without primary_key
- 错误:A field or property with the name 'XXX' was not found on the selected data source 解决
- Oracle11.2新特性之INSERT提示IGNORE_ROW_ON_DUPKEY_INDEX
- Insert 10000 tuples with "SET AUTOCOMMIT OFF" or no ON ML
- Solutions for INSERT OR UPDATE on SQL Server
- JAVA: Serial Port access with javax.comm or rxtx on Windows, Linux etc.
- [Python] Boolean Or "Mask" Index Arrays filter with numpy
- OpenRisc-52-run openrisc&orpmon on ml501 board
- Builds failing with OutOfMemoryErrors(Heap or Permgen space) on Jenkins
- LEFT OUTER JOIN with ON condition or WHERE condition?