ホームページ >バックエンド開発 >PHPチュートリアル >PHP のメモリ消費と高い同時処理、PHP のソート。
ステートメントは大量のメモリを消費しません。 activeNum は単なるインデックスです。
もちろん、キャッシュがあることが最善です。
ステートメントは大量のメモリを消費しません。 activeNum は単なるインデックスです。
もちろん、キャッシュがあることが最善です。
ステートメントは大量のメモリを消費しません。 activeNum は単なるインデックスです。
もちろん、キャッシュがあることが最善です。
1. 配列の添字によるソートのコードが見つかりませんでした
2. activeNum にインデックスがあるはずです (通常のインデックスで十分です)
3. 知っていますかデータベースへのアクセスとキャッシュへのアクセスの違いは何ですか?
圧力をデータベースからキャッシュに転送することは間違いなく適切ですか?
データが数十万または数百万ある場合、キャッシュ戦略は何ですか?
1. 配列の添字によるソートのコードが見つかりませんでした
2. activeNum にインデックスがあるはずです (通常のインデックスで十分です)
3. 方法を知っていますか?データベースとキャッシュにアクセスするのは違いますか?
圧力をデータベースからキャッシュに転送することは間違いなく適切ですか?
データが数十万または数百万ある場合、キャッシュ戦略は何ですか?
1. 配列の添字によるソートのコードが見つかりませんでした
2. activeNum にインデックスがあるはずです (通常のインデックスで十分です)3. 方法を知っていますか?データベースとキャッシュにアクセスするのは違いますか?
圧力をデータベースからキャッシュに転送することは間違いなく適切ですか?
データが数十万または数百万ある場合、キャッシュ戦略は何ですか?
MySQL が役立つ提案を提供します。それを当然のことと考えるのではなく、
クエリ コマンド
を説明すると、MySQL が役立つ提案を提供します。それを当然のこととして
と言うのではなく、コマンドを通じてインデックスが使用できないことがわかりました。今考えている方法の 1 つは、新しいランク テーブルを作成してユーザーのランクを置くことです。配列に従ってIDとランキングを取得し、ランクテーブルに置き、新しいテーブルにuidが0のフィールドを追加し、ランキングを取得するたびに書き込んだ時間をランキングに入れます。最初に uid=0 で時間を取得し、現在の時間と比較します。それが 30 分を超えている場合は、再度アクティブなテーブルにアクセスしてランキングを読み取り、ランク テーブルに入れます。この方法が実現可能かどうかわかりませんか?
possible_key は使用できるインデックスです activeNum にインデックスを付けていないため、インデックスはありません
したがって、Extra 列には filesort があり、一時ファイルが activeNum のソートに使用されることを意味します
さて、もう一度いじってみましょう。Linux では PHP がスレッドセーフであるかどうかに区別はありますか?たとえば、データベースを呼び出す DB を作成した場合、その DB は 1 回だけ参照され、すべてのユーザーによって使用されますか、それともすべてのユーザーに対して独立していますか?
全員が独立しています
クエリの量が非常に大きく、データがリアルタイムでない場合は、キャッシュして処理できますが、データをリアルタイムにする必要がある場合は、まず通常のインデックスがどこにあるかを見つけます。他の最適化が基礎となります。
皆さん、ありがとうございます。キャッシュに一時テーブルを使用することで問題は解決しました。