@symcbean が既に述べたように、php の mysql ドライバーはクエリ結果をキャッシュします。mysql_query()
これが、while($row=mysql_fetch_array())
ループ内で別のことができる理由でもあります。
MySql Administrator または phpMyAdmin が非常に速く結果を表示する理由は、LIMIT 10
背後でクエリに a を追加するためです。
クエリの結果をすばやく取得したい場合は、いくつかのヒントを提供できます。必要なものだけを必要なときに選択する必要があります。
select *
必要な列だけを選択し、どこでもスローしないでください。これは、後で別の列が必要で、それをステートメントに追加するのを忘れたときに噛み付く可能性があるselect
ため、必要なときにこれを行います (100 列または 100 万行のテーブルなど)。
- ユーザーの前に 20 x 1000 のテーブルを投げないでください。とにかく、彼女は巨大なテーブルで探しているものを見つけることができません. 並べ替えとフィルタリングを提供します。おまけとして、彼女が通常探しているものを見つけて、ワンクリックでその記録を表示する方法を提供します。
- 非常に大きなテーブルでは、必要なレコードの主キーのみを選択してください。
while()
ループで追加の詳細を取得するより。より多くのクエリを作成するため、これは非論理的に見えるかもしれませんが、約 10 個のテーブル、数百の同時ユーザー、ロック、およびクエリ キャッシュを含むクエリを処理する場合は、物事は常に最初は意味をなさない:)
これらは、上司と私自身の経験から学んだいくつかのヒントです。いつものYMMVです。