1 怎么查看连接信息
MySQL一个连接就是线程。
查看连接状态:
mysql> show status;
Threads_cached | 0 |
| Threads_connected | 1 | //正在连接的连接数
| Threads_created | 3 | //已经创建过的连接数
| Threads_running | 1 | //正在运行的连接数
| Uptime | 22947 |
查看连接参数:
mysql> show variables;
| max_connections | 16384 //允许的最大连接数
查看连接线程状态:
mysql> show processlist;
+----+-----------+-----------+------+---------+------+-------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+-----------+-----------+------+---------+------+-------+------------------+
| 3 | denny | localhost | NULL | Query | 0 | NULL | show processlist |
+----+-----------+-----------+------+---------+------+-------+------------------+
1 row in set (0.00 sec)
2 连接资源的分配
key_buffer_size 指定用于索引的缓冲区大小,增加它可得到更好的索引处理性能。read_buffer_size = 4M 读查询操作所能使用的缓冲区大小。
join_buffer_size = 8M 联合查询操作所能使用的缓冲区大小.
sort_buffer_size
注意:下面参数每个线程独占
max_allowed_packet = 4M
thread_stack = 256K
如果有100个连接,那么实际分配的总共排序缓冲区大小为100 × 6 = 600MB。
内存使用下面的加起来不要超过2G:(一些系统对文件大小的限制,一个表就是一个文件)
innodb_buffer_pool_size
+ key_buffer_size
+ max_connections * (sort_buffer_size + read_buffer_size + binlog_cache_size)
+ max_connections * 2MB //thread stack