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/f504229e2e1938719e5e0bd13cd56af5ee971d69/height=288;version=1;width=512/https%3A%2F%2Fblogger.googleusercontent.com%2Fimg%2Fb%2FR29vZ2xl%2FAVvXsEg5kCWQd_YfdS9mFP0vDjI_F9tmWFZla184ymL4H_e4XPLBkWbX6H3J7XSNEog_R0Aah0vV3gsR8CXpwjeAfGcsbs8Ce_5ZubNUFHMLuzAwtPxodFqQtB79VhyphenhyphenllCiCATskH3h1f_GixGM%2Fw1200-h630-p-k-no-nu%2Fmysql-gtid1.png)