
-
2021.2.10システム開発
システムエンジニア
篠﨑 亮洋
MySQLでテーブル毎のレコード件数を取得する際の注意点
こんにちは。
今回は表題の件についての情報共有となります。
先日データベースの移行を行った際に、簡単にレコード件数確認できる方法あるかな?と思い
「MySQL テーブル毎 レコード件数」で検索を行い、下記SQLを使用したレコード件数取得の方法を見つけました。
select table_name, table_rows from information_schema.tables where table_schema = 'sample_db'
早速、実行してレコード件数を確認。
まとめて件数も確認できてこれは便利!と思ったのですが
テーブル毎にデータを確認している際に、上記で抽出された件数と実際の件数が異なることに気が付きました。
おかしいと思いつつ、念の為もう一度レコード件数を取得してみると
今度は初回と2回目の実行結果でレコード件数が異なっていました。
(もちろん、この間にレコードの追加・削除は行っていません。)
ということで、調べてみた結果がこちらとなります。
(MySQL公式サイトより引用)
https://dev.mysql.com/doc/refman/8.0/en/information-schema-tables-table.html
簡単にまとめると、以下のような内容となります。
MyISAMの場合は正確な値、InnoDBの場合は概算値を返します。(40% ~ 50%の誤差あり) 正確な件数を取得する場合はSELECT COUNT(*)を使用してください。
不具合ではなく、MySQLの仕様で概算値が返されていた結果
データ件数が実際の値と異なっていたり、毎回の抽出結果が変動していたというわけですね。
残念ながら、information_schema.tableを参照するやり方は今後使用することは無さそうです。
(概算値で確認OKにはできないので。。。)
公式に書いてある通り、正確な件数を取得する際はテーブル毎にSELECT COUNT(*)使って件数を取得しましょう!
スタッフおすすめの記事
その他の記事
-
2021.3.2その他
システムエンジニア
大貫 晃一
DDNSとは
-
2021.2.26デザイン
Webデザイナー
岩瀬 莉奈
【Adobe XD:モバイル版】スマホデザインの品質を上げる為に、アプリと連携してみよう!
-
2021.2.25システム開発
代表取締役
大橋 俊昭
人気沸騰のプログラミング言語「Python」に触れよう!!(サードパーティライブラリ編)
-
2021.2.24セールス
Webプランナー
大根田 陸
貴社に合ったWeb制作会社を探すポイント
-
2021.2.22システム開発
システムエンジニア
上松 博志
[リモート] リモートツールあれこれ
-
2021.2.19デザイン
Webデザイナー/ディレクター
小島 和剛
MacのキーボードはMX Keys for Mac以外考えられない。あとモニターを買い替えた話。
-
2021.2.17Webプロモーション
Webコンサルタント
高山 安住
中小企業にとってのコロナ禍の採用市場の変化
-
2021.2.15Webプロモーション
Webコンサルタント
長澤 潤
Googleアナリティクスのサンプルレポートを公開中|実際の企業データでアクセス解析
-
2021.2.10システム開発
システムエンジニア
篠﨑 亮洋
MySQLでテーブル毎のレコード件数を取得する際の注意点
-
2021.2.8会長
取締役会長
石川 博司
催促はクレームである