失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > mysql 时区 夏令时 冬令时

mysql 时区 夏令时 冬令时

时间:2018-11-28 00:18:24

相关推荐

mysql 时区   夏令时 冬令时

mysql默认时区:

mysql> show variables like '%time_zone%'; +------------------+--------+| Variable_name | Value |+------------------+--------+| system_time_zone | PDT || time_zone | SYSTEM |+------------------+--------+2 rows in set (0.01 sec)

f配制文件修改:可以通过修改f在 [mysqld] 之下加default-time-zone=timezone来修改时区。如:default-time-zone = '+8:00'

通过命令:

set time_zone = timezone比如北京时间(GMT+0800)set time_zone = '+8:00';

美国pst时间(GMT-08:00)set time_zone = '-8:00';

eg:

mysql> set time_zone = '+8:00'; Query OK, 0 rows affected (0.17 sec)mysql> select now(); +---------------------+| now()|+---------------------+| -06-23 16:32:53 |+---------------------+1 row in set (0.00 sec)mysql> set time_zone = '-8:00'; Query OK, 0 rows affected (0.00 sec)mysql> select now(); +---------------------+| now()|+---------------------+| -06-23 00:33:21 |+---------------------+1 row in set (0.00 sec)

mysql 数据库中的时区信息默认为空:

mysql> show tables like "%time%";

+---------------------------+

| Tables_in_mysql (%time%) |

+---------------------------+

| time_zone |

| time_zone_leap_second |

| time_zone_name |

| time_zone_transition |

| time_zone_transition_type |

+---------------------------+

5 rows in set (0.00 sec)

导入时区信息到MYSQL中

mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql

查看导入后的信息:

mysql> SELECT * FROM time_zone_name WHERE name LIKE 'America/%' limit 10;+----------------------------------+--------------+| Name | Time_zone_id |+----------------------------------+--------------+| America/Adak | 54 || America/Anchorage| 55 || America/Anguilla | 56 || America/Antigua | 57 || America/Araguaina| 58 || America/Argentina/Buenos_Aires | 59 || America/Argentina/Catamarca| 60 || America/Argentina/ComodRivadavia | 61 || America/Argentina/Cordoba | 62 || America/Argentina/Jujuy| 63 |+----------------------------------+--------------+10 rows in set (0.00 sec)

美国不仅有时区,还有夏令时,冬令时,提前一小时,或者减慢一小时(在时区时间基础上)

美国夏令时将于03月13日当地时间早上02:00(北京时间14:00)开始,至11月6日结束,届时美国的交易时间将较冬令时提前1个小时

mysql> SELECT CONVERT_TZ('-03-13 01:30:00','-8:00','America/Los_Angeles') AS TIME\G*************************** 1. row ***************************TIME: -03-13 01:30:001 row in set (0.00 sec)

mysql> SELECT CONVERT_TZ('-03-13 02:30:00','-8:00','America/Los_Angeles') AS TIME\G

*************************** 1. row ***************************

TIME: -03-13 03:30:00

1 row in set (0.00 sec)

内核专家:

目前在MySQL数据库中,在初始化time_zone相关表元信息以后,MySQL就可以自己完成夏令时(Daylight Saving Time)和闰秒(Leap Second)的修正,不需要额外的服务器

高手:

设置timezone后,不需要再通过__tz_convert()来转换,各个线程之间并无锁冲突, now()的影响将微乎其微。性能自然获得大大提升。

公司有人实验过,高并发下now()性能有8倍之差

NOW()函数 不设时区信息需要__tz_convert()进行转换,带时区信息NOW(),就不需要__tz_convert()进行转换

now()不带时区转换过程:

now()或current_timestamp()等获取带有时区信息的时间时,数据库会在server层解析填充其field时,

通过内核层将gmt时间转化为所需的time类型。而转换是通内核层的libc动态库的接口__tz_convert()来实现。

这个实现一个致命的缺点是:串行化

select now();

Breakpoint 2, 0x00007f50e68a5ab0 in __tz_convert () from /lib64/libc.so.6(gdb) bt#0 0x00007f50e68a5ab0 in __tz_convert () from /lib64/libc.so.6#1 0x00000000008a40ef in Time_zone_system::gmt_sec_to_TIME (this=0x180ee30 <tz_SYSTEM>, tmp=0x48e0830, t=1467609071) at /usr/src/mysql-5.6.28/sql/:1079#2 0x00000000006e9ce0 in Time_zone::gmt_sec_to_TIME (this=0x180ee30 <tz_SYSTEM>, tmp=0x48e0830, tv=...) at /usr/src/mysql-5.6.28/sql/tztime.h:60#3 0x00000000006e5e61 in MYSQL_TIME_cache::set_datetime (this=0x48e0830, tv=..., dec_arg=0 '\000', tz=0x180ee30 <tz_SYSTEM>) at /usr/src/mysql-5.6.28/sql/:1747#4 0x00000000006e7bda in Item_func_now::fix_length_and_dec (this=0x48e0760) at /usr/src/mysql-5.6.28/sql/:1866#5 0x000000000069e0e7 in Item_func::fix_fields (this=0x48e0760, thd=0x492acb0, ref=0x48e0890) at /usr/src/mysql-5.6.28/sql/:231#6 0x000000000075c155 in setup_fields (thd=0x492acb0, ref_pointer_array=..., fields=..., mark_used_columns=MARK_COLUMNS_READ, sum_func_list=0x48e0bb0, allow_sum_func=true) at /usr/src/mysql-5.6.28/sql/:8400#7 0x00000000007f749d in JOIN::prepare (this=0x48e0968, tables_init=0x0, wild_num=0, conds_init=0x0, og_num=0, order_init=0x0, group_init=0x0, having_init=0x0, select_lex_arg=0x492d248, unit_arg=0x492cc00) at /usr/src/mysql-5.6.28/sql/:168#8 0x00000000008080cd in mysql_prepare_select (thd=0x492acb0, tables=0x0, wild_num=0, fields=..., conds=0x0, og_num=0, order=0x0, group=0x0, having=0x0, select_options=2147748608, result=0x48e0940, unit=0x492cc00, select_lex=0x492d248, free_join=0x7f5081ec5e6b) at /usr/src/mysql-5.6.28/sql/:1055#9 0x0000000000808222 in mysql_select (thd=0x492acb0, tables=0x0, wild_num=0, fields=..., conds=0x0, order=0x492d410, group=0x492d348, having=0x0, select_options=2147748608, result=0x48e0940, unit=0x492cc00, select_lex=0x492d248) at /usr/src/mysql-5.6.28/sql/:1178#10 0x000000000080854d in handle_select (thd=0x492acb0, result=0x48e0940, setup_tables_done_option=0) at /usr/src/mysql-5.6.28/sql/:110#11 0x00000000007cdc4e in execute_sqlcom_select (thd=0x492acb0, all_tables=0x0) at /usr/src/mysql-5.6.28/sql/:5134#12 0x00000000007cf185 in mysql_execute_command (thd=0x492acb0) at /usr/src/mysql-5.6.28/sql/:2656#13 0x00000000007d67c4 in mysql_parse (thd=0x492acb0, rawbuf=0x48e06d0 "select now()", length=12, parser_state=0x7f5081ec7910) at /usr/src/mysql-5.6.28/sql/:6386#14 0x00000000007d83f4 in dispatch_command (command=COM_QUERY, thd=0x492acb0, packet=0x4910c51 "select now()", packet_length=12) at /usr/src/mysql-5.6.28/sql/:1340#15 0x00000000007d9c80 in do_command (thd=0x492acb0) at /usr/src/mysql-5.6.28/sql/:1037#16 0x000000000078e3fb in do_handle_one_connection (thd_arg=0x492acb0) at /usr/src/mysql-5.6.28/sql/:982#17 0x000000000078e4c1 in handle_one_connection (arg=0x492acb0) at /usr/src/mysql-5.6.28/sql/:898#18 0x0000000000b11172 in pfs_spawn_thread (arg=0x47900b0) at /usr/src/mysql-5.6.28/storage/perfschema/:1860#19 0x00007f50e744083d in start_thread () from /lib64/libpthread.so.0#20 0x00007f50e68edfdd in clone () from /lib64/libc.so.6#21 0x0000000000000000 in ?? ()

select sysdate();

(gdb) bt#0 0x00007f50e68a5ab0 in __tz_convert () from /lib64/libc.so.6#1 0x00000000008a40ef in Time_zone_system::gmt_sec_to_TIME (this=0x180ee30 <tz_SYSTEM>, tmp=0x7f5081ec5770, t=1467609724) at /usr/src/mysql-5.6.28/sql/:1079#2 0x00000000006e54de in Item_func_sysdate_local::get_date (this=0x48e0770, now_time=0x7f5081ec5770, fuzzy_date=1) at /usr/src/mysql-5.6.28/sql/:1910#3 0x0000000000634940 in Item::send (this=0x48e0770, protocol=0x492b1d0, buffer=0x7f5081ec5b70) at /usr/src/mysql-5.6.28/sql/:6925#4 0x000000000070f558 in Protocol::send_result_set_row (this=0x492b1d0, row_items=0x492d368) at /usr/src/mysql-5.6.28/sql/:847#5 0x00000000007833a9 in select_send::send_data (this=0x48e0900, items=...) at /usr/src/mysql-5.6.28/sql/:2531#6 0x00000000007a3ffa in JOIN::exec (this=0x48e0928) at /usr/src/mysql-5.6.28/sql/:149#7 0x0000000000807992 in mysql_execute_select (thd=0x492acb0, select_lex=0x492d248, free_join=true) at /usr/src/mysql-5.6.28/sql/:1101#8 0x0000000000808351 in mysql_select (thd=0x492acb0, tables=0x0, wild_num=0, fields=..., conds=0x0, order=0x492d410, group=0x492d348, having=0x0, select_options=2147748608, result=0x48e0900, unit=0x492cc00, select_lex=0x492d248) at /usr/src/mysql-5.6.28/sql/:1222#9 0x000000000080854d in handle_select (thd=0x492acb0, result=0x48e0900, setup_tables_done_option=0) at /usr/src/mysql-5.6.28/sql/:110#10 0x00000000007cdc4e in execute_sqlcom_select (thd=0x492acb0, all_tables=0x0) at /usr/src/mysql-5.6.28/sql/:5134#11 0x00000000007cf185 in mysql_execute_command (thd=0x492acb0) at /usr/src/mysql-5.6.28/sql/:2656#12 0x00000000007d67c4 in mysql_parse (thd=0x492acb0, rawbuf=0x48e06d0 "select sysdate()", length=16, parser_state=0x7f5081ec7910) at /usr/src/mysql-5.6.28/sql/:6386#13 0x00000000007d83f4 in dispatch_command (command=COM_QUERY, thd=0x492acb0, packet=0x4910c51 "", packet_length=16) at /usr/src/mysql-5.6.28/sql/:1340#14 0x00000000007d9c80 in do_command (thd=0x492acb0) at /usr/src/mysql-5.6.28/sql/:1037#15 0x000000000078e3fb in do_handle_one_connection (thd_arg=0x492acb0) at /usr/src/mysql-5.6.28/sql/:982#16 0x000000000078e4c1 in handle_one_connection (arg=0x492acb0) at /usr/src/mysql-5.6.28/sql/:898#17 0x0000000000b11172 in pfs_spawn_thread (arg=0x47900b0) at /usr/src/mysql-5.6.28/storage/perfschema/:1860#18 0x00007f50e744083d in start_thread () from /lib64/libpthread.so.0#19 0x00007f50e68edfdd in clone () from /lib64/libc.so.6#20 0x0000000000000000 in ?? ()

select now() -2

(gdb) bt#0 0x00007ff8c1c1c1c0 in localtime_r () from /lib64/libc.so.6#1 0x00000000008a40ef in Time_zone_system::gmt_sec_to_TIME (this=0x180ee30 <tz_SYSTEM>, tmp=0x49afae0, t=1467636107) at /usr/src/mysql-5.6.28/sql/:1079#2 0x00000000006e9ce0 in Time_zone::gmt_sec_to_TIME (this=0x180ee30 <tz_SYSTEM>, tmp=0x49afae0, tv=...) at /usr/src/mysql-5.6.28/sql/tztime.h:60#3 0x00000000006e5e61 in MYSQL_TIME_cache::set_datetime (this=0x49afae0, tv=..., dec_arg=0 '\000', tz=0x180ee30 <tz_SYSTEM>) at /usr/src/mysql-5.6.28/sql/:1747#4 0x00000000006e7bda in Item_func_now::fix_length_and_dec (this=0x49afa10) at /usr/src/mysql-5.6.28/sql/:1866#5 0x000000000069e0e7 in Item_func::fix_fields (this=0x49afa10, thd=0x48c3db0, ref=0x49afb40) at /usr/src/mysql-5.6.28/sql/:231#6 0x000000000075c155 in setup_fields (thd=0x48c3db0, ref_pointer_array=..., fields=..., mark_used_columns=MARK_COLUMNS_READ, sum_func_list=0x49afe60, allow_sum_func=true) at /usr/src/mysql-5.6.28/sql/:8400#7 0x00000000007f749d in JOIN::prepare (this=0x49afc18, tables_init=0x0, wild_num=0, conds_init=0x0, og_num=0, order_init=0x0, group_init=0x0, having_init=0x0, select_lex_arg=0x48c6348, unit_arg=0x48c5d00) at /usr/src/mysql-5.6.28/sql/:168#8 0x00000000008080cd in mysql_prepare_select (thd=0x48c3db0, tables=0x0, wild_num=0, fields=..., conds=0x0, og_num=0, order=0x0, group=0x0, having=0x0, select_options=2147748608, result=0x49afbf0, unit=0x48c5d00, select_lex=0x48c6348, free_join=0x7ff85d1fce6b) at /usr/src/mysql-5.6.28/sql/:1055#9 0x0000000000808222 in mysql_select (thd=0x48c3db0, tables=0x0, wild_num=0, fields=..., conds=0x0, order=0x48c6510, group=0x48c6448, having=0x0, select_options=2147748608, result=0x49afbf0, unit=0x48c5d00, select_lex=0x48c6348) at /usr/src/mysql-5.6.28/sql/:1178#10 0x000000000080854d in handle_select (thd=0x48c3db0, result=0x49afbf0, setup_tables_done_option=0) at /usr/src/mysql-5.6.28/sql/:110#11 0x00000000007cdc4e in execute_sqlcom_select (thd=0x48c3db0, all_tables=0x0) at /usr/src/mysql-5.6.28/sql/:5134#12 0x00000000007cf185 in mysql_execute_command (thd=0x48c3db0) at /usr/src/mysql-5.6.28/sql/:2656#13 0x00000000007d67c4 in mysql_parse (thd=0x48c3db0, rawbuf=0x49af980 "select now()", length=12, parser_state=0x7ff85d1fe910) at /usr/src/mysql-5.6.28/sql/:6386#14 0x00000000007d83f4 in dispatch_command (command=COM_QUERY, thd=0x48c3db0, packet=0x49a5751 "select now()", packet_length=12) at /usr/src/mysql-5.6.28/sql/:1340#15 0x00000000007d9c80 in do_command (thd=0x48c3db0) at /usr/src/mysql-5.6.28/sql/:1037#16 0x000000000078e3fb in do_handle_one_connection (thd_arg=0x48c3db0) at /usr/src/mysql-5.6.28/sql/:982#17 0x000000000078e4c1 in handle_one_connection (arg=0x48c3db0) at /usr/src/mysql-5.6.28/sql/:898#18 0x0000000000b11172 in pfs_spawn_thread (arg=0x4794e60) at /usr/src/mysql-5.6.28/storage/perfschema/:1860#19 0x00007ff8c27b883d in start_thread () from /lib64/libpthread.so.0#20 0x00007ff8c1c65fdd in clone () from /lib64/libc.so.6#21 0x0000000000000000 in ?? ()(gdb) disasDump of assembler code for function localtime_r:=> 0x00007ff8c1c1c1c0 <+0>:mov %rsi,%rdx0x00007ff8c1c1c1c3 <+3>:mov $0x1,%esi0x00007ff8c1c1c1c8 <+8>:jmpq 0x7ff8c1c1dab0 <__tz_convert>End of assembler dump.(gdb) nextSingle stepping until exit from function localtime_r,which has no line number information.0x00007ff8c1c1dab0 in __tz_convert () from /lib64/libc.so.6(gdb) diaasUndefined command: "diaas". Try "help".(gdb) disasDump of assembler code for function __tz_convert:=> 0x00007ff8c1c1dab0 <+0>:push %r120x00007ff8c1c1dab2 <+2>:mov %esi,%r12d0x00007ff8c1c1dab5 <+5>:push %rbp0x00007ff8c1c1dab6 <+6>:mov %rdi,%rbp0x00007ff8c1c1dab9 <+9>:push %rbx0x00007ff8c1c1daba <+10>: mov %rdx,%rbx0x00007ff8c1c1dabd <+13>: sub $0x10,%rsp0x00007ff8c1c1dac1 <+17>: test %rdi,%rdi0x00007ff8c1c1dac4 <+20>: je0x7ff8c1c1dc6e <__tz_convert+446>0x00007ff8c1c1daca <+26>: mov $0x1,%esi0x00007ff8c1c1dacf <+31>: xor %eax,%eax0x00007ff8c1c1dad1 <+33>: cmpl $0x0,0x2cb458(%rip) # 0x7ff8c1ee8f30 <__libc_multiple_threads>0x00007ff8c1c1dad8 <+40>: je0x7ff8c1c1daea <__tz_convert+58> 0x00007ff8c1c1dada <+42>: lock cmpxchg %esi,0x2c8ab2(%rip) # 0x7ff8c1ee6594 <tzset_lock>0x00007ff8c1c1dae2 <+50>: jne 0x7ff8c1c1dd9a <_L_lock_1685>0x00007ff8c1c1dae8 <+56>: jmp 0x7ff8c1c1daf7 <__tz_convert+71>0x00007ff8c1c1daea <+58>: cmpxchg %esi,0x2c8aa3(%rip) # 0x7ff8c1ee6594 <tzset_lock>0x00007ff8c1c1daf1 <+65>: jne 0x7ff8c1c1dd9a <_L_lock_1685>0x00007ff8c1c1daf7 <+71>: lea 0x2cb1c2(%rip),%rax # 0x7ff8c1ee8cc0 <_tmbuf>0x00007ff8c1c1dafe <+78>: xor %edi,%edi0x00007ff8c1c1db00 <+80>: cmp %rax,%rdx0x00007ff8c1c1db03 <+83>: sete %dil0x00007ff8c1c1db07 <+87>: xor %esi,%esi0x00007ff8c1c1db09 <+89>: callq 0x7ff8c1c1d160 <tzset_internal>0x00007ff8c1c1db0e <+94>: mov 0x2cb1ec(%rip),%eax # 0x7ff8c1ee8d00 <__use_tzfile>0x00007ff8c1c1db14 <+100>: test %eax,%eax0x00007ff8c1c1db16 <+102>: je0x7ff8c1c1db94 <__tz_convert+228>0x00007ff8c1c1db18 <+104>: mov 0x0(%rbp),%rdi0x00007ff8c1c1db1c <+108>: lea 0xc(%rsp),%rcx0x00007ff8c1c1db21 <+113>: mov %rsp,%rdx0x00007ff8c1c1db24 <+116>: mov %rbx,%r80x00007ff8c1c1db27 <+119>: mov %r12d,%esi0x00007ff8c1c1db2a <+122>: callq 0x7ff8c1c1de60 <__tzfile_compute>0x00007ff8c1c1db2f <+127>: test %rbx,%rbx0x00007ff8c1c1db32 <+130>: je0x7ff8c1c1db64 <__tz_convert+180>0x00007ff8c1c1db34 <+132>: test %r12d,%r12d0x00007ff8c1c1db37 <+135>: je0x7ff8c1c1dbc8 <__tz_convert+280>0x00007ff8c1c1db3d <+141>: mov 0x2cb1bd(%rip),%eax # 0x7ff8c1ee8d00 <__use_tzfile>0x00007ff8c1c1db43 <+147>: test %eax,%eax0x00007ff8c1c1db45 <+149>: je0x7ff8c1c1dc13 <__tz_convert+355>0x00007ff8c1c1db4b <+155>: mov 0x28(%rbx),%rsi0x00007ff8c1c1db4f <+159>: sub (%rsp),%rsi0x00007ff8c1c1db53 <+163>: mov %rbx,%rdx0x00007ff8c1c1db56 <+166>: mov %rbp,%rdi0x00007ff8c1c1db59 <+169>: callq 0x7ff8c1c1ba90 <__offtime>0x00007ff8c1c1db5e <+174>: test %eax,%eax0x00007ff8c1c1db60 <+176>: jne 0x7ff8c1c1dbc0 <__tz_convert+272>0x00007ff8c1c1db62 <+178>: xor %ebx,%ebx0x00007ff8c1c1db64 <+180>: cmpl $0x0,0x2cb3c5(%rip) # 0x7ff8c1ee8f30 <__libc_multiple_threads>0x00007ff8c1c1db6b <+187>: je0x7ff8c1c1db7c <__tz_convert+204>0x00007ff8c1c1db6d <+189>: lock decl 0x2c8a20(%rip) # 0x7ff8c1ee6594 <tzset_lock>0x00007ff8c1c1db74 <+196>: jne 0x7ff8c1c1ddb9 <_L_unlock_1746>0x00007ff8c1c1db7a <+202>: jmp 0x7ff8c1c1db88 <__tz_convert+216>0x00007ff8c1c1db7c <+204>: decl 0x2c8a12(%rip) # 0x7ff8c1ee6594 <tzset_lock>0x00007ff8c1c1db82 <+210>: jne 0x7ff8c1c1ddb9 <_L_unlock_1746>0x00007ff8c1c1db88 <+216>: add $0x10,%rsp0x00007ff8c1c1db8c <+220>: mov %rbx,%rax0x00007ff8c1c1db8f <+223>: pop %rbx0x00007ff8c1c1db90 <+224>: pop %rbp0x00007ff8c1c1db91 <+225>: pop %r120x00007ff8c1c1db93 <+227>: retq 0x00007ff8c1c1db94 <+228>: xor %esi,%esi0x00007ff8c1c1db96 <+230>: mov %rbx,%rdx0x00007ff8c1c1db99 <+233>: mov %rbp,%rdi0x00007ff8c1c1db9c <+236>: callq 0x7ff8c1c1ba90 <__offtime>0x00007ff8c1c1dba1 <+241>: test %eax,%eax0x00007ff8c1c1dba3 <+243>: jne 0x7ff8c1c1dbe7 <__tz_convert+311>0x00007ff8c1c1dba5 <+245>: xor %ebx,%ebx0x00007ff8c1c1dba7 <+247>: movq $0x0,(%rsp)0x00007ff8c1c1dbaf <+255>: movl $0x0,0xc(%rsp)0x00007ff8c1c1dbb7 <+263>: jmpq 0x7ff8c1c1db2f <__tz_convert+127>0x00007ff8c1c1dbbc <+268>: nopl 0x0(%rax)0x00007ff8c1c1dbc0 <+272>: mov 0xc(%rsp),%eax0x00007ff8c1c1dbc4 <+276>: add %eax,(%rbx)0x00007ff8c1c1dbc6 <+278>: jmp 0x7ff8c1c1db64 <__tz_convert+180>0x00007ff8c1c1dbc8 <+280>: lea 0x951ae(%rip),%rax # 0x7ff8c1cb2d7d0x00007ff8c1c1dbcf <+287>: movl $0x0,0x20(%rbx)0x00007ff8c1c1dbd6 <+294>: movq $0x0,0x28(%rbx)0x00007ff8c1c1dbde <+302>: mov %rax,0x30(%rbx)0x00007ff8c1c1dbe2 <+306>: jmpq 0x7ff8c1c1db4b <__tz_convert+155>0x00007ff8c1c1dbe7 <+311>: mov 0x14(%rbx),%esi0x00007ff8c1c1dbea <+314>: lea 0x2c89af(%rip),%rdi # 0x7ff8c1ee65a0 <tz_rules>0x00007ff8c1c1dbf1 <+321>: add $0x76c,%esi0x00007ff8c1c1dbf7 <+327>: callq 0x7ff8c1c1ce00 <compute_change>0x00007ff8c1c1dbfc <+332>: mov 0x14(%rbx),%esi0x00007ff8c1c1dbff <+335>: lea 0x2c89ca(%rip),%rdi # 0x7ff8c1ee65d0 <tz_rules+48>0x00007ff8c1c1dc06 <+342>: add $0x76c,%esi0x00007ff8c1c1dc0c <+348>: callq 0x7ff8c1c1ce00 <compute_change>0x00007ff8c1c1dc11 <+353>: jmp 0x7ff8c1c1dba7 <__tz_convert+247>0x00007ff8c1c1dc13 <+355>: mov 0x2c89a6(%rip),%rcx # 0x7ff8c1ee65c0 <tz_rules+32>0x00007ff8c1c1dc1a <+362>: mov 0x2c89cf(%rip),%rdi # 0x7ff8c1ee65f0 <tz_rules+80>0x00007ff8c1c1dc21 <+369>: cmp %rdi,%rcx0x00007ff8c1c1dc24 <+372>: jg0x7ff8c1c1dc83 <__tz_convert+467>0x00007ff8c1c1dc26 <+374>: mov 0x0(%rbp),%rsi0x00007ff8c1c1dc2a <+378>: xor %eax,%eax0x00007ff8c1c1dc2c <+380>: cmp %rsi,%rcx0x00007ff8c1c1dc2f <+383>: jg0x7ff8c1c1dc39 <__tz_convert+393>0x00007ff8c1c1dc31 <+385>: xor %eax,%eax0x00007ff8c1c1dc33 <+387>: cmp %rsi,%rdi0x00007ff8c1c1dc36 <+390>: setg %al0x00007ff8c1c1dc39 <+393>: movslq %eax,%rdx0x00007ff8c1c1dc3c <+396>: mov %eax,0x20(%rbx)0x00007ff8c1c1dc3f <+399>: mov 0x2c617a(%rip),%rax # 0x7ff8c1ee3dc00x00007ff8c1c1dc46 <+406>: mov (%rax,%rdx,8),%rax0x00007ff8c1c1dc4a <+410>: mov %rax,0x30(%rbx)0x00007ff8c1c1dc4e <+414>: lea (%rdx,%rdx,1),%rax0x00007ff8c1c1dc52 <+418>: add %rdx,%rax0x00007ff8c1c1dc55 <+421>: lea 0x2c894c(%rip),%rdx # 0x7ff8c1ee65a8 <tz_rules+8>0x00007ff8c1c1dc5c <+428>: shl $0x4,%rax0x00007ff8c1c1dc60 <+432>: mov 0x10(%rax,%rdx,1),%rax0x00007ff8c1c1dc65 <+437>: mov %rax,0x28(%rbx)0x00007ff8c1c1dc69 <+441>: jmpq 0x7ff8c1c1db4b <__tz_convert+155>0x00007ff8c1c1dc6e <+446>: mov 0x2c6333(%rip),%rax # 0x7ff8c1ee3fa80x00007ff8c1c1dc75 <+453>: xor %ebx,%ebx0x00007ff8c1c1dc77 <+455>: movl $0x16,%fs:(%rax)0x00007ff8c1c1dc7e <+462>: jmpq 0x7ff8c1c1db88 <__tz_convert+216>0x00007ff8c1c1dc83 <+467>: mov 0x0(%rbp),%rdx0x00007ff8c1c1dc87 <+471>: mov $0x1,%eax0x00007ff8c1c1dc8c <+476>: cmp %rdx,%rdi0x00007ff8c1c1dc8f <+479>: jg0x7ff8c1c1dc39 <__tz_convert+393>0x00007ff8c1c1dc91 <+481>: xor %eax,%eax0x00007ff8c1c1dc93 <+483>: cmp %rdx,%rcx0x00007ff8c1c1dc96 <+486>: setle %al0x00007ff8c1c1dc99 <+489>: jmp 0x7ff8c1c1dc39 <__tz_convert+393>End of assembler dump.

[root@localhost ~]# stap -v -e 'probe process("/lib64/libc-2.5.so").function("__tz_convert").call{ if( tid()==15267) printf("%s:%s %d \n",execname(),probefunc(),tid());print_ubacktrace()}' -d /usr/local/mysql56/bin/mysqld |c++filtPass 1: parsed user script and 109 library script(s) using 110724virt/34364res/2112shr/32900data kb, in 260usr/100sys/385real ms.Pass 2: analyzed script: 1 probe(s), 9 function(s), 4 embed(s), 0 global(s) using 113460virt/38036res/3108shr/35636data kb, in 60usr/1050sys/2125real ms.Pass 3: using cached /root/.systemtap/cache/a1/stap_a10e8693bbc550250f91b5363abb795b_3427.cPass 4: using cached /root/.systemtap/cache/a1/stap_a10e8693bbc550250f91b5363abb795b_3427.koPass 5: starting run.WARNING: Missing unwind data for module, rerun with 'stap -d /usr/local/mysql56/bin/mysql'mysqld:__tz_convert 15267 0x7fbcecdb1ab0 : __tz_convert+0x0/0x1f0 [/lib64/libc-2.5.so]0x8a40ef : Time_zone_system::gmt_sec_to_TIME(st_mysql_time*, long) const+0x29/0x4c [/usr/local/mysql56/bin/mysqld]0x6e9ce0 : Time_zone::gmt_sec_to_TIME(st_mysql_time*, timeval)+0x3a/0x4c [/usr/local/mysql56/bin/mysqld]0x6e5e61 : MYSQL_TIME_cache::set_datetime(timeval, unsigned char, Time_zone*)+0x33/0x5e [/usr/local/mysql56/bin/mysqld]0x6e7bda : Item_func_now::fix_length_and_dec()+0x98/0xba [/usr/local/mysql56/bin/mysqld]0x69e0e7 : Item_func::fix_fields(THD*, Item**)+0x4d1/0x548 [/usr/local/mysql56/bin/mysqld]0x75c155 : setup_fields(THD*, Bounds_checked_array<Item*>, List<Item>&, enum_mark_columns, List<Item>*, bool)+0x313/0x688 [/usr/local/mysql56/bin/mysqld]0x7f749d : JOIN::prepare(TABLE_LIST*, unsigned int, Item*, unsigned int, st_order*, st_order*, Item*, st_select_lex*, st_select_lex_unit*)+0x6c3/0x1768 [/usr/local/mysql56/bin/mysqld]0x8080cd : mysql_prepare_select(THD*, TABLE_LIST*, unsigned int, List<Item>&, Item*, unsigned int, st_order*, st_order*, Item*, unsigned long long, select_result*, st_select_lex_unit*, st_select_lex*, bool*)+0x2f9/0x34a [/usr/local/mysql56/bin/mysqld]0x808222 : mysql_select(THD*, TABLE_LIST*, unsigned int, List<Item>&, Item*, SQL_I_List<st_order>*, SQL_I_List<st_order>*, Item*, unsigned long long, select_result*, st_select_lex_unit*, st_select_lex*)+0x104/0x23e [/usr/local/mysql56/bin/mysqld]0x80854d : handle_select(THD*, select_result*, unsigned long)+0x1f1/0x29e [/usr/local/mysql56/bin/mysqld]0x7cdc4e : execute_sqlcom_select(THD*, TABLE_LIST*)+0x336/0x3ba [/usr/local/mysql56/bin/mysqld]0x7cf185 : mysql_execute_command(THD*)+0xc91/0x7ec8 [/usr/local/mysql56/bin/mysqld]0x7d67c4 : mysql_parse(THD*, char*, unsigned int, Parser_state*)+0x408/0x690 [/usr/local/mysql56/bin/mysqld]0x7d83f4 : dispatch_command(enum_server_command, THD*, char*, unsigned int)+0xd0a/0x227e [/usr/local/mysql56/bin/mysqld]0x7d9c80 : do_command(THD*)+0x318/0x394 [/usr/local/mysql56/bin/mysqld]0x78e3fb : do_handle_one_connection(THD*)+0x1ad/0x246 [/usr/local/mysql56/bin/mysqld]0x78e4c1 : handle_one_connection+0x2d/0x34 [/usr/local/mysql56/bin/mysqld]0xb11172 : pfs_spawn_thread+0x18c/0x194 [/usr/local/mysql56/bin/mysqld]0x7fbced94c83d [/lib64/libpthread-2.5.so+0x683d/0x218000]0x7fc104aaeab0 : __tz_convert+0x0/0x1f0 [/lib64/libc-2.5.so]0x410901 [/usr/local/mysql56/bin/mysql+0x10901/0x15e000]^CPass 5: run completed in 10usr/120sys/10618real ms.

如果觉得《mysql 时区 夏令时 冬令时》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。