#include #include #include enum { MODE_DELETE, MODE_INSERT, MODE_CREATE }; int main( int parameterCount, char** parameters ) { int i = 0; int mode = MODE_DELETE; MYSQL* link = NULL; my_bool trueval = 1; char query[1024]; time_t currentTime; time( ¤tTime ); for( i = 1; i < parameterCount; i++ ) { char* parameter = parameters[ i ]; if( strcmp(parameter,"--delete") == 0 ) { mode = MODE_DELETE; } else if( strcmp(parameter,"--insert") == 0 ) { mode = MODE_INSERT; } else if( strcmp(parameter,"--create") == 0 ) { mode = MODE_CREATE; } else { printf( "Usage:\n" " %s [ { --insert | --delete | --create } ]\n" "\n" "", parameters[0] ); exit( 1 ); } } if( (link = mysql_init(NULL)) == NULL ) { printf("!!! Cannot initialize the MySQL database.\n"); exit( 1 ); } mysql_options( link, MYSQL_OPT_RECONNECT, &trueval ); if( !mysql_real_connect(link, "127.0.0.1", "root","", "test", 0, NULL, 0) ) { printf("!!! Could not connect to database.\n"); exit( 1 ); } mysql_select_db( link, "test" ); if( mode == MODE_DELETE ) { sprintf( query, "DELETE FROM shortterm WHERE time < '%lu'" "", currentTime - 300 ); printf("<<< %s\n", query ); mysql_real_query( link, query, strlen(query) ); } else if( mode == MODE_CREATE ) { sprintf( query, "DROP TABLE IF EXISTS shortterm" "" ); printf("<<< %s\n", query ); mysql_query( link, query ); sprintf( query, "CREATE TABLE shortterm (time INT, poll_id INT, value BIGINT, PRIMARY KEY(time,poll_id), KEY(poll_id)) " "" ); printf("<<< %s\n", query ); mysql_real_query( link, query, strlen(query) ); } else if( mode == MODE_INSERT ) { for( i = 0; i < 1000000000; i++ ) { time_t endTime; time( ¤tTime ); sprintf( query, "INSERT DELAYED INTO shortterm (time,poll_id,value) VALUES ('%lu','%lu','%lu') " "", currentTime, i % 100000, ( currentTime + i ) / 100000 ); time( ¤tTime ); printf("<<< %s\n", query ); mysql_real_query( link, query, strlen(query) ); time( &endTime ); printf("--- (%ld seconds)\n", endTime-currentTime ); } } return( 0 ); }