読者です 読者をやめる 読者になる 読者になる

tkuchikiの日記

Linux やプログラミングについて書きます。

RDS for MySQL と Amazon Aurora でクエリによる取得行数を取得するなら SHOW GLOBAL STATUS WHERE variable_name = 'Innodb_rows_read' を使うのが良い

WEB+DB PRESS vol.94 特集1第5章P32 で、MySQL のクエリによる取得行数を取得するには、

mysql -u root -e "SHOW ENGINE INNODB STATUS\G" | grep "Number of rows"

を実行すると記載しましたが、Amazon Aurora の Reader(Read Replica) は SHOW ENGINE INNODB STATUS を実行しても何も結果を返さないためこの方法が使えません。
しかし、 SHOW GLOBAL STATUS WHERE variable_name = 'Innodb_rows_read' であれば Aurora の Writer, Reader に関係なく取得できます(もちろん RDS for MySQL でも OK です)。

mysql -u root -NBe "SHOW GLOBAL STATUS WHERE variable_name = 'Innodb_rows_read'" | awk '{print $2}'

ということで、 SHOW GLOBAL STATUS WHERE variable_name = 'Innodb_rows_read' を使うのがおすすめです!