码迷,mamicode.com
首页 > 数据库 > 详细

MySQL--时间戳与时区问题

时间:2019-03-04 09:28:40      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:mysq   article   http   出现   导致   并发   系统   detail   需要   

对于使用 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

MySQL--时间戳与时区问题

标签:mysq   article   http   出现   导致   并发   系统   detail   需要   

原文地址:https://www.cnblogs.com/gaogao67/p/10468620.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!