10万件程度レコードをもつ2つのテーブルに対し、下記のようなSQL文を実行します。
(実際のSQL文とは違いますが、だいたいこんな感じです。)
SELECT * FROM aaa JOIN bbb USING(key) WHERE ORDER BY ccc LIMIT 50 OFFSET 5000
すると、
CGIから実行→CPU使用率が一時的に60%を超える。1~2秒待たされる。
phpMyAdminから同じSQL文を実行→CPUほどんど消費せず。瞬時に終わる。
のようにCGIからとphpMyAdminからで速度に大きな違いがあります。
こんなに差が付いてしまう理由がわかりましたら教えていただきたく。
No.2ベストアンサー
- 回答日時:
どのような方法で、測定しているのでしょうか?
キャッシュ(データベースのI/Oバッファ、同じSQL実行時にSQL解析・実行計画作成時のオーバヘッドを抑止するクエリキャッシュ等)を利用できるような測定方法だと、1回目より2回目以降が早くなったりします。
>10万件程度レコードをもつ2つのテーブルに対し、下記のようなSQL文を実行
母体データが10万件として、ヒットするのは何件くらいなのでしょう?
検索条件が省略されていますが、インデクスにより絞り込めるものになっているのでしょうか?
念のために確認しますが、比較対象としているSQLは、どちらもまったく同じ結果になるものなのですよね?
回答ありがとうございます。
chukenkenkouさんのおっしゃるとおり、キャッシュによる差だったようです。
今いろいろ調べて知ったのですが、MySQLではプリペアドステートメントを使うとクエリキャッシュが効かなくなるのですね…。
CGIではSQL文の実行にプリペアドステートメントを使っていたので(phpMyAdminからは使ってない)、それがキャッシュを使う、使わないという差になって負荷の違いにつながったようです。
勉強になりました。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL PhpMyAdminで作成して実行せよ。 東京23区を、皇居を中心とした4つのエリア(南東, 南西, 1 2023/06/11 11:58
- MySQL SQLです。下記の問合せを行うクエリを、PhpMyAdminで作成して実行せよ。 「昨年の各月の総降 1 2023/07/01 00:32
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- MySQL SQLです。こんな感じですか?あってますか? うまくいきません教えてくださいお願いします 1 2023/07/08 15:27
- MySQL 書籍の内容はまともでしょうか? 1 2023/01/22 03:07
- MySQL うまくいきません教えてくださいお願いしますSQLです。クエリ構文です。 1 2023/07/07 12:39
- MySQL 下記の問合せを行うクエリを、PhpMyAdminで作成して実行せよ。 日本の全市区町村を人口密度が低 1 2023/06/18 19:51
- Oracle 下記のsqlで取得されるレコード以外を取得する方法ありますでしょうか。 SELECT B.番号, B 2 2022/04/20 23:21
- Oracle SQLについて教えて下さい。 主キーを持ったカラムを主キーの機能を持たせたまま カンマ区切りで文字列 1 2023/03/27 22:47
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ストアドプロシージャーでバッ...
-
AccessのDAO.ExecuteとDoCmd.Ru...
-
SQLCMDにて教えていただきたい...
-
IDENTITY列を持つテーブルへBCP...
-
Excel-VBAの「しばらくお待ちく...
-
UPDATE時のSETの実行順について
-
オラクルインストールユーザ以...
-
Access2010のマルチコアCPUへの...
-
アクションクエリが実行できない
-
ストアドの速度がクエリの30...
-
SQLサーバーのジョブでのexeフ...
-
データベース SQL のセッショ...
-
JDBCのエラー
-
sqlcmdでクエリの実行結果をバ...
-
バッチからメンテナンスプラン...
-
Excelフィルタ抽出で「検索して...
-
SQLServer2005のストプロでxp_c...
-
JAVA ServletでSQL Serverに接...
-
DTexec でSSISパッケージを実行...
-
ユーザー定義関数内でのsp_exec...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel-VBAの「しばらくお待ちく...
-
AccessのDAO.ExecuteとDoCmd.Ru...
-
ユーザー定義関数内でのsp_exec...
-
sqlcmdでクエリの実行結果をバ...
-
ストアドの速度がクエリの30...
-
ストアドプロシージャでcsvファ...
-
SQLCMDにて教えていただきたい...
-
サーバーと実行端末が違う場合...
-
Excelフィルタ抽出で「検索して...
-
静的SQL、動的SQL?
-
「最高気温が35度以上の日を猛...
-
指定時刻のクエリ自動実行
-
バッチからメンテナンスプラン...
-
同じSQL文で速度がだいぶ違う
-
バッチからSQLCMDを実行する方法
-
UPDATE時のSETの実行順について
-
アクションクエリが実行できない
-
IDENTITY列を持つテーブルへBCP...
-
xp_cmdshellについて
-
SQLServerのジョブからバッチを...
おすすめ情報