Hi,
I know I've allready posted this question but it's rather important for my
final work. I'll add some extra information at the bottom.
I've got a question 'bout the number of number of writes a MySQLserver can
handle in a second. I've written a program which contains the following
code:
typedef struct {
MYSQL * connection;
char * database;
} con;
int resolvequery(char * vraag, MYSQL_RES& toReturn, int& affected, int
control) {
MYSQL_RES * result;
MYSQL_ROW row;
int state,counter;
char * query;
char * db;
MYSQL * connect;
int * temporal;
connect = standardcon.connection;
db = standardcon.database;
state = mysql_real_query(connect, vraag, 1024);
if (state != 0) {
printf(mysql_error(connect));
return 1;
}
if((strncmp(vraag,"SEL",3)==0)||(strncmp(vraag,"SHO",3)==0)
||(strncmp(vraag,"DES",3)==0))
{
result = mysql_store_result(connect);
affected = mysql_num_rows(result);
toReturn = *result;
}
else
affected = 0;
return 0;
}
And when I call this procedure 50 times/second (from one client)
or 100 times/second (two clients at the same time) it stores all the data
without generating an error, but immediatly when I start a third client it
crashes with the usual segmentation fault. In case you need it, the calls
are made from this function:
CORBA::Short i_DBM_impl::storeData(const DINA::t_Table& table,
const char * e) throw(CORBA::SystemException)
{
int state;
char * mission;
MYSQL_RES temp;
mission = (char *) malloc(256 * sizeof(char));
sprintf(mission, "INSERT DELAYED INTO %s VALUES
('%s',CURRENT_TIMESTAMP())",
(char *) table.name, e);
cout << mission << endl;
if (resolvequery(mission,temp,state,0)==0)
return 1;
else
return 0;
}
So is it possible that some buffer is full or something when more than 100
inserts in second are requested?? What can I do to adjust the performance or
did I make other mistakes?? I'm using mysql Ver 9.38 Distrib 3.22.32, for
pc-linux-gnu (i586) on Debian Linux machine.
Please can you also mail to me ([EMAIL PROTECTED]) and not only directly
to the list (I'm receiving the index-version and else I've to wait too long
:-)
Extra info:
SHOW STATUS:
+--------------------------+--------+
| Variable_name | Value |
+--------------------------+--------+
| Aborted_clients | 0 |
| Aborted_connects | 0 |
| Created_tmp_tables | 0 |
| Delayed_insert_threads | 0 |
| Delayed_writes | 10101 |
| Delayed_errors | 60 |
| Flush_commands | 1 |
| Handler_delete | 0 |
| Handler_read_first | 0 |
| Handler_read_key | 68198 |
| Handler_read_next | 1332 |
| Handler_read_rnd | 788092 |
| Handler_update | 68194 |
| Handler_write | 107755 |
| Key_blocks_used | 3466 |
| Key_read_requests | 354147 |
| Key_reads | 1 |
| Key_write_requests | 114449 |
| Key_writes | 114426 |
| Max_used_connections | 3 |
| Not_flushed_key_blocks | 0 |
| Not_flushed_delayed_rows | 0 |
| Open_tables | 2 |
| Open_files | 4 |
| Open_streams | 1 |
| Opened_tables | 91 |
| Questions | 449077 |
| Running_threads | 1 |
| Slow_queries | 0 |
| Uptime | 331347 |
+--------------------------+--------+
and SHOW VARIABLES:
+----------------------------+-----------------------------+
| Variable_name | Value |
+----------------------------+-----------------------------+
| back_log | 5 |
| connect_timeout | 5 |
| basedir | /usr/ |
| datadir | /var/lib/mysql/ |
| delayed_insert_limit | 100 |
| delayed_insert_timeout | 300 |
| delayed_queue_size | 1000 |
| join_buffer | 131072 |
| flush_time | 0 |
| key_buffer | 16773120 |
| language | /usr/share/mysql/english/ |
| log | ON |
| log_update | OFF |
| long_query_time | 10 |
| low_priority_updates | OFF |
| max_allowed_packet | 1047552 |
| max_connections | 100 |
| max_connect_errors | 10 |
| max_delayed_insert_threads | 20 |
| max_join_size | 4294967295 |
| max_sort_length | 1024 |
| max_write_lock_count | 4294967295 |
| net_buffer_length | 16384 |
| pid_file | /var/run/mysqld/mysqld.pid |
| port | 3306 |
| protocol_version | 10 |
| record_buffer | 131072 |
| skip_locking | ON |
| skip_networking | OFF |
| socket | /var/run/mysqld/mysqld.sock |
| sort_buffer | 2097144 |
| table_cache | 64 |
| thread_stack | 131072 |
| tmp_table_size | 1048576 |
| tmpdir | /tmp/ |
| version | 3.22.32-log |
| wait_timeout | 28800 |
+----------------------------+-----------------------------+
Greetings,
Raf
_________________________________________________________________________
Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com.
---------------------------------------------------------------------
Before posting, please check:
http://www.mysql.com/manual.php (the manual)
http://lists.mysql.com/ (the list archive)
To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php