MySQL 5.6 で GTID (Global Transaction ID)が導入されました。どうも使うと便利そうだ、というものの実際どんなものかイマイチ分からなかったので、調べてみました。 私は調べるまで誤解していたのですが、UUIDを持つのはサーバーであって、トランザクションではありません。それぞれのサーバーにUUIDが割り当てられ、トランザクションは連番が振られます。 例えば、4台のMySQLインスタンスで1台をマスターにした場合は以下のようににUUIDが振られます。 そして、トランザクションは次のようにIDが振られます。 UUID:トランザクション番号 例えば"40bbcf9b-e556-45b0-bdb3-e528f0041652"で実行された123番目のトランザクションは 40bbcf9b-e556-45b0-bdb3-e528f0041652:123 という感じになります
![MySQL 5.6 の GTID のしくみ](https://cdn-ak-scissors.b.st-hatena.com/image/square/07d675a8e9293e135241d033f4d201e14e49ae8b/height=288;version=1;width=512/http%3A%2F%2F3.bp.blogspot.com%2F-rEYFsFvynf0%2FUixsiTnoYbI%2FAAAAAAAAKWg%2FRjQ2JFCW9pE%2Fw1200-h630-p-k-no-nu%2Fmysql-gtid1.png)