質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Q&A

1回答

2110閲覧

mysqlのselectクエリが二回目から早くなる理由について

Kimsehwa

総合スコア312

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

0グッド

0クリップ

投稿2022/08/06 02:24

編集2022/08/06 14:25

前提

2500万件ぐらいを初回selectすると3分ぐらいかかりますが、
二回目から3秒程度しかかかりません。

select count(*) from messages; +----------+ | count(*) | +----------+ | 25927483 | +----------+ 1 row in set (3 min 36.78 sec) 二回目以降 1 row in set (3.07 sec)

クエリキャッシュにるものかと思いましたが、
Qcache_hitsみて0でしたのでこれとは別の問題かと思いました。
なお、RESET QUERY CACHE;を実行しても2回目以降は早いかったです。

mysql> SHOW STATUS LIKE'Qcache%'; +-------------------------+----------+ | Variable_name | Value | +-------------------------+----------+ | Qcache_free_blocks | 1 | | Qcache_free_memory | 1031832 | | Qcache_hits | 0 | | Qcache_inserts | 0 | | Qcache_lowmem_prunes | 0 | | Qcache_not_cached | 15983254 | | Qcache_queries_in_cache | 0 | | Qcache_total_blocks | 1 | +-------------------------+----------+ 8 rows in set (0.00 sec)

実現したいこと

クエリキャッシュによるものでなければなぜ二回目からクエリは早くなるか知りたいです。

試したこと

query cacheでhitされてないこと確認
flush tables実行
RESET QUERY CACHE;実行

補足情報(FW/ツールのバージョンなど)

linux-amazon
mysql5.7
RDSでもdockerコンテナでも再現

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2022/08/06 03:10

マシン情報(DBのインストールされている)も詳細ご提示ください。 あと他に動いてるサービスとかアプリケーションとか、わかる範囲で
guest

回答1

0

オプチマイザは先ず統計情報を見て実行計画を組み立てますから、統計情報の差異ではないでしょうか。
ANALYZE TABLEを実施してから計測してみては。

投稿2022/08/06 03:12

sazi

総合スコア25195

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問