InnoDB テーブルの行番号

InnoDB テーブルの行番号

テーブルを MyISAM から InnoDB に変換した後、「show table status」コマンドは、「count(*)」コマンドで表示される正しい数字とは異なる行番号を返します。これは、InnoDB テーブルで使用されるコンパクトな行形式によるものと考えられます。

MyISAM テーブルの場合と同じように、「show table status」コマンドを使用して、InnoDB エンジン上のすべてのテーブルの正しい行番号をすばやく取得する方法があるかどうか疑問に思っています。

答え1

運が悪いようですね。次の素晴らしいマニュアルから:

http://dev.mysql.com/doc/refman/5.1/en/show-table-status.html

行数。MyISAM などの一部のストレージ エンジンでは、正確な行数が保存されます。InnoDB などの他のストレージ エンジンでは、この値は近似値であり、実際の値と 40 ~ 50% ほど異なる場合があります。このような場合は、SELECT COUNT(*) を使用して正確な行数を取得します。

関連情報