
-
2021.2.10システム開発
システムエンジニア
篠﨑 亮洋
2021年8月1日「マリンロード」は「インソースマーケティングデザイン」へ社名を変更いたしました
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(*)使って件数を取得しましょう!
スタッフおすすめの記事
その他の記事
-
2022.5.16デザイン
Webデザイナー
岩瀬 莉奈
AdobeXDで出来る、更新しやすい表組みの作り方
-
2022.5.12Webプロモーション
Webコンサルタント/ディレクター
小山 恭平
【GA4・公式推奨の設定方法】GTMでの設置時のトリガーは「初期化トリガー」が望ましい
-
2022.5.11Webプロモーション
Webコンサルタント
塩月 茉里香
【2022年5月最新情報】GA4ディメンションに「ランディング ページ」登場
-
2022.5.9Webプロモーション
取締役
長澤 潤
GA4とサーチコンソールを連携する方法を4ステップでご紹介
-
2022.4.28その他
Webクリエイター
I.M
【初心者向け】Excelで「データの入力規則」と「条件付き書式」を利用してタスク管理表を作る
-
2022.4.25その他
Webクリエイター
矢口 奈果
【初心者向け】意外と知らない?ファンクションキーで業務効率化しよう!
-
2022.4.20システム開発
システムエンジニア
阿久津 勇太
Oracle12cのサポートが終了しましたね
-
2022.4.18HTML/CSS
Webクリエイター
中山 享祐
FireFoxで表示が崩れる場合の対処方法
-
2022.4.14管理部
管理部
大久保 美希
ITS旅行センターのホームページがリニューアル!
-
2022.4.11その他
代表取締役
大橋 俊昭
タイム・イズ・マネー