查看连接数
show processlist;
查看慢日志 show variables like '%slow_query_log%'; show variables like 'long_query_time%';设置慢日志记录什么样的SQL,默认10s log-queries-not-using-indexes:未使用索引的查询也被记录到慢查询日志中,一般也开启这个变量
如果出现如下情况
mysql> show variables like '%slow_query_log%';
+---------------------+---------------------+
| Variable_name | Value |
+---------------------+---------------------+
| slow_query_log | OFF |
| slow_query_log_file | ZhiBingLiu-slow.log |
+---------------------+---------------------+
2 rows in set
windows下my.ini添加
[mysqld]
slow-query-log=1
slow-query-log-file = "D:/xampp/mysql/data/mysql-slow.log"
long_query_time = 4 #默认为10秒
#min-examined-row-limit=30 #查询检查返回少于该参数指定行的SQL不被记录到慢查询日志
log-queries-not-using-indexes
{注:
slow_query_log
long_query_time = 5
log-slow-queries=slow.log
现在必须要这种设置才行
slow-query-log=1
long_query_time = 5 #这个没变
slow-query-log-file=slow.log
看来从5.6.* 可能已经全面取消了
log-slow-queries=slow.log这种写法了}
查看log日志是否开启 show variables like 'general_log' set GLOBAL general_log='ON'; SET GLOBAL general_log_file = '/tmp/mysql.log' 不使用的时候记得关掉,否则会大量占用磁盘空间。
mysql的性能和max_connections(最大连接数默认值为100) 和 wait_timeout(空闲等待时长,缺省情况下,wait_timeout的初始值是28800) 都有关系。wait_timeout 的值越大,连接的空闲等待就越长,这样就会造成当前连接数越大
[mysqld] max_connections=1000 #默认是100 wait_time_out=1814400 #21天,默认是8小时
interactive_timeout=1814400 #需要和上一个参数必须同时设置
将MySQL慢查询日志写入表的的设置为。set global log_output='TABLE';
在抓取数据的时候总是提示:MySQL server has gone away, 在这样的情况下正是由于某两条SQL查询之间隔离的时间过长,导致该连接自动断开。 解决方案:在打开链接的时候如下多加一个参数 mysql_connect($dbhost, $dbuser, $dbpw, false, MYSQL_CLIENT_INTERACTIVE) 然后接着执行这样的query: mysql_query("set interactive_timeout=24*3600"); 这样的话,就不会出现mysql server has gone away 了。 为什么呢? 看看官方手册里的说明 MYSQL_CLIENT_COMPRESS 使用压缩的通讯协议 MYSQL_CLIENT_IGNORE_SPACE 允许在函数名后留空格位 MYSQL_CLIENT_INTERACTIVE 允许设置断开连接之前所空闲等候的 interactive_timeout 时间(代替 wait_timeout)。 MYSQL_CLIENT_SSL 使用 SSL 加密。本标志仅在 MySQL 客户端库版本为 4.x 或更高版本时可用。在 PHP 4 和 Windows 版的 PHP 5 安装包中绑定的都是 3.23.x。