Here is something interesting to remember : the status variables Questions takes a count of all queries executed by mysqld, regardless of who issued each query.
Why do I say regardless of who issued each query ?
There are queries that are launched internally by mysqld. Here is a simple example:
mysql> show global status like 'Com_select'; show global status like 'Questions';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Com_select | 15 |
+---------------+-------+
1 row in set (0.00 sec)
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Questions | 56 |
+---------------+-------+
1 row in set (0.00 sec)
mysql> show global status like 'Com_select'; show global status like 'Questions';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Com_select | 15 |
+---------------+-------+
1 row in set (0.00 sec)
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Questions | 58 |
+---------------+-------+
1 row in set (0.00 sec)
mysql> show global status like 'Questions';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Questions | 59 |
+---------------+-------+
1 row in set (0.00 sec)
mysql> show global status like 'Questions';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Questions | 60 |
+---------------+-------+
1 row in set (0.00 sec)
mysql>
Please note that issuing a simple query like show global status like 'Questions';
is a query even if your are just requesting internal data from mysqld.
Multiply this by any number of DB Connections coming from MONyog, Munin, Nagios, MySQL Enterprise Monitor, or any other MySQL Monitoring tools and will always have a steady rise in the number of lightweight queries being executed.
I wrote about this before in ServerFault in a question "1 billion mysql queries in 24 hours? Can something be wrong?"
Queries can quitely come and go. The question left to answer is, why so many DB Connections? You need to make sure Apache is closing DB Connections at the same rate as mysqld. You may need to see run netstat
and look for DB Connections to mysql that have the TIME_WAIT status.
There are bug reports on this going back to MySQL 4.1 although the root of the problem may actually be with PHP: