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

Reply via email to