如何设置MySQL的内部时区支持?

如何设置MySQL的内部时区支持?

今天Facebook 的 MySQL发布下列关于 MySQL 性能:

今天,我们在一个完全意想不到的地方发现了一个性能问题 - 如果使用 TIMESTAMP 数据类型,并且 MySQL 配置为使用系统时区,它将影响 Linux C 库中具有全局互斥锁的代码。更糟糕的是,MySQL 的内部时区支持(使用 mysql.time_zone* 表)在单线程工作负载下快约 30%。使用 30 个客户端线程,MySQL 的内部时区转换速度快 30 倍。这一天一开始似乎是一个 MySQL 错误,但显然这是 MySQL 的胜利。-- domas

如何确定我的 MySQL 实例是否正在使用较慢的系统时区或是否正在使用较快的mysql.time_zone*表?即我应该检查哪些 MySQL 配置参数?

(我们实际上使用 Amazon RDS 而不是托管我们自己的数据库,但是我认为除了检查之外,这并不重要my.cnf,我需要使用 RDS 参数组来检查或更改配置变量。)

答案1

来自链接的文章

一旦你加载了文件(通过http://dev.mysql.com/.../时区支持.html),只需time_zone在中指定全局配置参数my.cnf,或使用更改它SET GLOBAL ...- 仍然不要忘记在中更改它my.cnf。请注意,您可能还希望在所有从属服务器上执行此操作,因为不同的时区会使复制有点烦恼。

您可以使用以下方式确定 global.time_zone 设置

mysql> select @@global.time_zone;
+--------------------+
| @@global.time_zone |
+--------------------+
| SYSTEM             |
+--------------------+
1 row in set (0.00 sec)

相关内容