MySQLのInnoDBテーブルではschema_infomation.tablesのtable_rowsが正確ではないことを今さら知った

いろいろネット上で調べていると既知のもので何を今さら…という感じではあるが、MySQLで全テーブルのレコード数を一括で取得するのに手軽にやれないかと思ってschema_infomation.tablesのtable_rowsを参照したら、マスター/スレーブ間で件数が数万件単位で違って焦った。テーブルの行数をcountで取得したら一致した。
何故じゃ…と思ったが結論から言うとそういう仕様だった。ちなみにやってたのはMySQL 5.5。

5.7でも同様になる模様。

続きを読む »