7.
MySQL 5.7
2013/04 MySQL 5.7.1 DMR11
2015/03 MySQL 5.7.6 DMR16
2015/04 MySQL 5.7.7 RC
2015/08 MySQL 5.7.8 RC
2015/10 MySQL 5.7.9 GA
2015/12 MySQL 5.7.10 GA
2016/02 MySQL 5.7.11 GA
6/133
8.
MySQL 5.7
2015/04 MySQL 5.7.7 RC
ここまではまあいい
2015/08 MySQL 5.7.8 RC
JSON型, virtual generated columnの拡張, InnoDB Page
Compression
2015/10 MySQL 5.7.9 GA
innodb_default_row_format, JSON -> operator,
innodb_numa_interleave
2015/12 MySQL 5.7.10 GA
Bug Fix
2016/02 MySQL 5.7.11 GA
InnoDB Tablespace Encryption 7/133
9.
MySQL 5.7
2015/04 MySQL 5.7.7 RC
ここまではまあいい
2015/08 MySQL 5.7.8 RC
新機能!!
2015/10 MySQL 5.7.9 GA
新機能!!
2015/12 MySQL 5.7.10 GA
Bug Fix
2016/02 MySQL 5.7.11 GA
新機能!!
8/133
43.
ストレージエンジンとして⾒たbinlog
A
binlog_cacheとsync_binlogによりアトミックっぽく振る舞え
るけど厳密にAtomicじゃない
C
ストレージエンジン層がコミットをシリアライズしてくれるこ
とに依存
I
常にSERIALIZABLE
D
sync_binlog= 1なら⼀応Durable
42/133
56.
READ-COMMITTEDがSBRを壊す︖
REPEATABLE-READならネクストキーロックでtrx2がブロ
ックされる。
+-----+------+
| num | val |
+-----+------+
| 1 | one |
+-----+------+
trx1> BEGIN;
trx1> UPDATE t1 SET val= 'updated' WHERE num= 2; -- No row update
d.
trx2> BEGIN;
trx2> UPDATE t1 SET num= 2 WHERE num = 1;
trx2> COMMIT;
trx1> COMMIT;
55/133
57.
RBR
5.1から導⼊
binlogに記録されるのは⾏の変更前の値と変更後の値をバイ
ナリーエンコードしたもの
イベントは⾏単位-
ただしDDLは設定に関わらずSBRで記録される
MySQL 5.7からのデフォルト
56/133
58.
RBR
$ mysqlbinlog -R -h 127.0.0.1 -P 64057 -uroot --stop-never bin.000010
mysql57> SET SESSION binlog_format= 'ROW';
Query OK, 0 rows affected (0.00 sec)
mysql57> INSERT INTO t1 VALUES (2, 'two');
Query OK, 1 row affected (0.00 sec)
# at 2607
#160201 19:23:58 server id 1057 end_log_pos 2653 CRC32 0x424bf80
5 Table_map: `d1`.`t1` mapped to number 108
# at 2653
#160201 19:23:58 server id 1057 end_log_pos 2701 CRC32 0xf946a87
6 Write_rows: table id 108 flags: STMT_END_F
BINLOG '
PjKvVhMhBAAALgAAAF0KAAAAAGwAAAAAAAEAAmQxAAJ0MQACCA8CgAACBfhLQg==
PjKvVh4hBAAAMAAAAI0KAAAAAGwAAAAAAAEAAgAC//wCAAAAAAAAAAN0d292qEb5
'/*!*/;
57/133
101.
N対1レプリケーション
実はMySQL Utilitiesにもmysqlrplmsというどあきレプリケ
ーションスクリプトがある
ただしこちらはGTID必須
mysqlrplms ̶ Set Up and Start Replication Among a
Slave and Multiple Masters
100/133
129.
NOW関数とバイナリーログ
安全でないと⾒なされない非決定的関数。 これらの関
数は決定的ではありませんが、ロギングおよびレプリケ
ー シ ョ ン目 的の場 合は安 全と し て処 理さ れ ま す:
CONNECTION̲ID()、CURDATE()、CURRENT̲DATE
()、CURRENT̲TIME()、CURRENT̲TIMESTAMP()、
CURTIME()、LAST̲INSERT̲ID()、LOCALTIME()、
LOCALTIMESTAMP()、NOW()、UNIX̲TIMESTAMP
( )、U T C ̲ D A T E ( )、U T C ̲ T I M E ( )、お よ び
UTC̲TIMESTAMP()。
http://dev.mysql.com/doc/refman/5.6/ja/replication-rbr-
safe-unsafe.html
128/133
130.
NOW関数とバイナリーログ
# at 4381
#160212 17:23:20 server id 1056 end_log_pos 4466 Query thread_i
d=43 exec_time=0 error_code=0
SET TIMESTAMP=1455265400/*!*/;
BEGIN
/*!*/;
# at 4466
#160212 17:23:20 server id 1056 end_log_pos 4710 Query thread_i
d=43 exec_time=0 error_code=0
SET TIMESTAMP=1455265400/*!*/;
INSERT INTO t1 VALUES (1691643253,'JBbKOfG7O3qp66Aa5yY8QelD4WL77eKIpneDJ
nCbq2Oo0QM6Pm6jOrxLDASCpgXWS1cnooMXjeJj5ahMCnxTXuqkxIxmyK8QLk52PJZ8ykjvA
P9N46sbtiKq09SqTc')
/*!*/;
# at 4710
#160212 17:23:20 server id 1056 end_log_pos 4737 Xid = 943518
COMMIT/*!*/;
129/133
Clipping is a handy way to collect and organize the most important slides from a presentation. You can keep your great finds in clipboards organized around topics.
Be the first to comment