当前位置: 移动技术网 > IT编程>数据库>Mysql > MySQL--时间戳与时区问题

MySQL--时间戳与时区问题

2019年03月04日  | 移动技术网IT编程  | 我要评论

对于使用 timestamp 的场景,mysql 在访问 timestamp 字段时会做时区转换,当 time_zone 设置为 system 时,mysql 访问每一行的 timestamp 字段时,都会通过 libc 的时区函数,获取 linux 设置的时区,在这个函数中会持有mutex,当大量并发sql需要访问 timestamp 字段时,会出现 mutex 竞争。

mysql 访问每一行都会做这个时区转换,转换完后释放mutex,所有等待这个 mutex 的线程全部唤醒,结果又只有一个线程会成功持有 mutex,其余又会再次sleep,这样就会导致 context switch 非常高但 qps 很低,系统吞吐量急剧下降。

解决办法:设置time_zone=’+8:00’,这样就不会访问 linux 系统时区,直接转换,避免了mutex问题。

参考链接:
https://blog.csdn.net/shaochenshuo/article/details/51881501

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网