mysql学习笔记

mysql 官方文档
https://dev.mysql.com/doc/refman/8.0/en/forcing-innodb-recovery.html

  • 时间天数计算
update status_sales AS adt,
istore_sales AS isale 
SET adt.publish_day = TIMESTAMPDIFF(
	DAY,
	`adt`.`publish_time`,
now())


select TIMESTAMPDIFF(DAY, '2018-03-20 23:59:00', '2018-03-22 00:00:00');

为什么要关闭 sleep 状态的连接

服务器在关闭连接之前在一个连接上等待行动的秒数,默认数值是 28800,即如果没有事情发生,服务器在 8 个小时后关闭连接。防止 sleep 过多而导致出现 too many connections。

如果你的 sleep 进程数在同一时间内过多,再加上其他状态的连接,总数超过了 max_connection 的值,那 mysql 除了 root 用户外,就无法再继续处理任何请求无法与任何请求建立连接或者直接 down 了。所以,这个问题在大负载的情况下还是相当严重的。如果发现你的 mysql 有很多死连接存在,首先要先检查你的程序是否使用的是 pconnect 的方式,其次,检查在页面执行完毕前是否及时调用了 mysql_close()。

还有一个办法,你可以在 my.cnf 里面加上 wait_timeout 和 interactive_timeout,把他们的值设的小一些,默认情况下 wait_timeout 的值是 8 小时的时间,你可以改成 1 个小时,或半个小时。这样 mysql 会更快的杀死死连接。防止连接总数超过 max_connection 的值。或者把 max_connection 的值设置的更大,不过这样显然不妥,连接的数量越多,对你服务器的压力越大。实际上那些连接都是冗余的,把它们尽快杀死才是上策。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值