回答編集履歴

1

追記

2023/06/10 04:28

投稿

退会済みユーザー
test CHANGED
@@ -7,3 +7,21 @@
7
7
  select 文に order by がないと順番の保証がありません。
8
8
 
9
9
  3 つに分ける = php と MySQL の間で 3 回ラウンドトリップが発生する・・・ということで、かえって遅くなると思うのですが。
10
+
11
+ ---
12
+
13
+ **【追記】**
14
+
15
+ 普通に考えてそのような大差があるとは思えません。データベースでの select 文の実行にかかる時間以外の、アプリ側での接続にかかる時間の影響があるのではないですか?
16
+
17
+ 例えば、接続プールを使っている場合、
18
+
19
+ (1) 一番最初にアプリが接続を open する時に接続プールと接続を作成します。当然それには時間がかかります。
20
+
21
+ (2) 最初の select 処理が終わって、アプリが接続を close すると (1) で作った接続はプールに戻されます。
22
+
23
+ (3) 次の select 処理のためアプリが接続を open すると、(1) で作ってプールに戻された接続を取得し、それを使ってデータベースへの接続が行われます。
24
+
25
+ (4) つまり、2 回目以降は接続プールと接続の作成は行わないのでその分時間は短くなります。
26
+
27
+ そのあたり質問者さんの環境ではどうなっているのか分かりませんが、とにかく測るべき処理だけが正しく計測されているか考えた方が良さそうと思います。