2013年1月29日火曜日

Primary Keyが無いテーブル + Galera Clusterで悲惨な目に

自分でこんな記事書いてたのに。。

 Primary Keyがないテーブル その2

binlog_format=ROWの時(MIXEDでも、結果が一意にならない関数使ったりしてROWモードでバイナリログ出力された時)に
Primary Keyの無いテーブルだと無茶苦茶テーブルスキャンしてレプリケーションが遅延しまくった話があったから、
Primary Keyは取り敢えず付けておこう! と思った話。


で。

最近Galera Cluster for MySQLの実装をいくつか試してるんですが、
これって必須でbinlog_format=ROWを設定しなきゃいけない。

…テーブルにpkey付けるの忘れて100万行INSERTしたら終わらない終わらない。。。_| ̄|○

エラーログに吐いて教えてくれました。
このcommitでlog_event.ccに追加されたのかな?


130129 22:24:07 [Note] The slave is applying a ROW event on behalf of an UPDATE statement on table t2 and is currently taking a considerable amount of time (61 seconds). This is due to the fact that it is scanning the table while looking up records to be processed. Consider adding a primary key (or unique key) to the table to improve performance.


_| ̄|○ 油断していたよ。。でもありがとうエラーログに吐いてくれて。。

2 件のコメント :

  1. はじめまして
    プライマリーキーに関しては、公式の limitations で プライマリキーがない行の DELETE は Galera Cluster では未サポートだよ~と書かれてますね

    https://kb.askmonty.org/en/mariadb-galera-cluster-known-limitations/

    返信削除
  2. 情報ありがとうございます( ´∀`)

    ワタシがやっちゃったのはINSERTですが、
    DELETEでもUPDATEでもpkeyなし + RBRだとどうしても悲惨な目にあっちゃうんですよね。。

    返信削除