目次
ディスカッションへの返信 (解決策)
ホームページ バックエンド開発 PHPチュートリアル PHP のメモリ消費と高い同時処理、PHP のソート。

PHP のメモリ消費と高い同時処理、PHP のソート。

Jun 20, 2016 pm 12:49 PM


SQL クエリを作成し、取得した配列の添字でソートします。ただ、先輩曰く、アクセスが多いとメモリを大量に消費するので、ネットでよく読んでいるのですが、キャッシュを使う方法があるとのことですが、他に対処方法はありますか?


ディスカッションへの返信 (解決策)

ステートメントは大量のメモリを消費しません。 activeNum は単なるインデックスです。
もちろん、キャッシュがあることが最善です。

ステートメントは大量のメモリを消費しません。 activeNum は単なるインデックスです。
もちろん、キャッシュがあることが最善です。


データが数十万または数百万ある場合、誰かがインデックスにアクセスするたびにデータを取得するためにリソースが消費されませんか?
インデックスを追加する場合、どのようなインデックスを追加する必要がありますか?このフィールドはいつでも変更されます。


ステートメントは大量のメモリを消費しません。 activeNum は単なるインデックスです。
もちろん、キャッシュがあることが最善です。


データが数十万または数百万ある場合、誰かがインデックスにアクセスするたびにデータを取得するためにリソースが消費されませんか?
インデックスを追加する場合、どのようなインデックスを追加する必要がありますか?このフィールドはいつでも変更されます

データ値が一意の場合は一意のインデックスを追加し、それ以外の場合は通常のインデックスを追加します
mysql テーブルに数百万のデータがある場合は、次のことを行う必要があります。サブテーブルを検討してください

1. 配列の添字によるソートのコードが見つかりませんでした
2. activeNum にインデックスがあるはずです (通常のインデックスで十分です)
3. 知っていますかデータベースへのアクセスとキャッシュへのアクセスの違いは何ですか?
圧力をデータベースからキャッシュに転送することは間違いなく適切ですか?
データが数十万または数百万ある場合、キャッシュ戦略は何ですか?

1. 配列の添字によるソートのコードが見つかりませんでした
2. activeNum にインデックスがあるはずです (通常のインデックスで十分です)
3. 方法を知っていますか?データベースとキャッシュにアクセスするのは違いますか?
圧力をデータベースからキャッシュに転送することは間違いなく適切ですか?
データが数十万または数百万ある場合、キャッシュ戦略は何ですか?



activeNum は数値型ですが、インデックスの使用も有効ですか?インデックスは where フィールドでのみ使用されると常に考えていました。インデックスはフィールドの並べ替えにも使用できますか? それ以外の場合、データの量が非常に多くなり、インデックスが使用されなくなります。適切ではありません。データベースはクラッシュしません。

1. 配列の添字によるソートのコードが見つかりませんでした

2. activeNum にインデックスがあるはずです (通常のインデックスで十分です)

3. 方法を知っていますか?データベースとキャッシュにアクセスするのは違いますか?

圧力をデータベースからキャッシュに転送することは間違いなく適切ですか?
データが数十万または数百万ある場合、キャッシュ戦略は何ですか?


現在、activeNum フィールドにはインデックスが付けられていません。
クエリ コマンドを説明してください

MySQL が役立つ提案を提供します。それを当然のことと考えるのではなく、



クエリ コマンド

を説明すると、MySQL が役立つ提案を提供します。それを当然のこととして



と言うのではなく、コマンドを通じてインデックスが使用できないことがわかりました。今考えている方法の 1 つは、新しいランク テーブルを作成してユーザーのランクを置くことです。配列に従ってIDとランキングを取得し、ランクテーブルに置き、新しいテーブルにuidが0のフィールドを追加し、ランキングを取得するたびに書き込んだ時間をランキングに入れます。最初に uid=0 で時間を取得し、現在の時間と比較します。それが 30 分を超えている場合は、再度アクティブなテーブルにアクセスしてランキングを読み取り、ランク テーブルに入れます。この方法が実現可能かどうかわかりませんか?


possible_key は使用できるインデックスです。activeNum にインデックスを付けていないため、インデックスはありません。
したがって、Extra 列には filesort があり、一時ファイルが activeNum のソートに使用されることを意味します。 >

possible_key は使用できるインデックスです activeNum にインデックスを付けていないため、インデックスはありません
したがって、Extra 列には filesort があり、一時ファイルが activeNum のソートに使用されることを意味します

さて、もう一度いじってみましょう。Linux では PHP がスレッドセーフであるかどうかに区別はありますか?たとえば、データベースを呼び出す DB を作成した場合、その DB は 1 回だけ参照され、すべてのユーザーによって使用されますか、それともすべてのユーザーに対して独立していますか?


全員が独立しています


シングルトン モードを試して、結果を静的変数に保存してみることができます

クエリの量が非常に大きく、データがリアルタイムでない場合は、キャッシュして処理できますが、データをリアルタイムにする必要がある場合は、まず通常のインデックスがどこにあるかを見つけます。他の最適化が基礎となります。

皆さん、ありがとうございます。キャッシュに一時テーブルを使用することで問題は解決しました。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

golang フレームワーク アーキテクチャはどのようにして高い同時処理を実現しているのでしょうか? golang フレームワーク アーキテクチャはどのようにして高い同時処理を実現しているのでしょうか? Jun 02, 2024 am 09:36 AM

Go フレームワーク アーキテクチャでは、高い同時実行処理能力を向上させる主な戦略は、Goroutine の軽量同時実行メカニズムを利用してタスクを並列実行し、CPU 使用率を向上させることです。同時チャネルを使用してコルーチン間で安全かつ効率的なデータ交換を行い、データの一貫性と同時性を確保します。非同期処理メカニズムを実装して、時間のかかるタスクをバックグラウンドで実行することで、リクエスト応答のブロックを回避し、応答機能を向上させます。

Nginxサーバーの高い同時処理とリクエスト応答の最適化スキル Nginxサーバーの高い同時処理とリクエスト応答の最適化スキル Aug 04, 2023 pm 08:37 PM

Nginx サーバーの高い同時処理とリクエスト応答の最適化スキル 今日のインターネット時代では、Web サイトの高い同時処理とリクエストの応答速度はユーザー エクスペリエンスに直接影響します。高性能、多機能のサーバー ソフトウェアである Nginx は、高い同時処理の実現とリクエスト応答の最適化に役立ちます。この記事では、読者が Nginx を使用して高い同時処理を実現し、リクエスト応答の最適化を実現する方法をよりよく理解できるように、いくつかの一般的なテクニックとコード例を紹介します。 1. リバースプロキシの使用 Nginx のリバースプロキシ機能は、

PHP と SQLite: ビッグ データと高い同時実行性を処理する方法 PHP と SQLite: ビッグ データと高い同時実行性を処理する方法 Jul 28, 2023 am 11:25 AM

PHP と SQLite: ビッグ データと高い同時実行性を処理する方法 今日のインターネット時代では、ビッグ データの処理と高い同時実行性は開発者が直面する一般的な課題です。 PHP は非常に人気のあるサーバーサイド スクリプト言語であり、SQLite は軽量の組み込みデータベースであり、これらを組み合わせることで、効率的でスケーラブルなソリューションを提供できます。この記事では、PHP と SQLite を使用してビッグ データと高い同時実行性を処理する方法を紹介し、関連するコード例を添付します。 1. ビッグデータの処理 大量のデータを処理する必要がある場合、S

キャッシュ テクノロジを使用して PHP の同時実行性の高い処理の問題を解決する方法 キャッシュ テクノロジを使用して PHP の同時実行性の高い処理の問題を解決する方法 Aug 10, 2023 pm 01:30 PM

キャッシュ テクノロジを使用して PHP の同時実行性の高い処理の問題を解決する方法 インターネットの急速な発展により、今日の Web サイトやアプリケーションは同時アクセス数がますます増加しています。多数のユーザーが PHP Web サイトに同時にアクセスすると、従来の PHP スクリプト実行方法ではサーバーのパフォーマンスが低下し、応答時間が長くなり、クラッシュが発生する可能性があります。この問題を解決するには、キャッシュ テクノロジを使用して PHP Web サイトの同時処理能力を向上させることができます。キャッシング技術とは何ですか?キャッシュ技術は、頻繁にアクセスされるデータを一時的に保存することです

PHP で swoole 拡張機能を使用して高い同時処理を実現する PHP で swoole 拡張機能を使用して高い同時処理を実現する Jun 25, 2023 pm 02:30 PM

インターネットが発展し続けるにつれて、さまざまな種類の Web サイトや Web アプリケーションがますます増えています。現時点では、高い同時実行性への対応は避けられない問題となっています。高い同時実行性は、大量のアクセスの問題だけでなく、同時に開始される複数のリクエストの問題でもあります。 Web アプリケーションの場合、複数のリクエストを処理する機能は、同時に処理する機能でもあります。 PHP では、swoole 拡張機能は、大量の同時リクエストを処理するための非常に優れたモデルを提供します。 Swoole 拡張機能はオープンソースであり、PHP 言語の拡張機能に似ています。

PHPでリアルタイムチャット機能を開発するための高同時処理技術 PHPでリアルタイムチャット機能を開発するための高同時処理技術 Aug 26, 2023 pm 07:49 PM

PHP によるリアルタイムチャット機能開発のための高並列処理技術 インターネットの発展に伴い、リアルタイムチャット機能はさまざまなアプリケーションで徐々に重要な要素になってきました。ソーシャル メディア、電子商取引プラットフォーム、オンライン カスタマー サービスのいずれであっても、ユーザーのニーズを満たすためには、同時実行性の高いリアルタイム チャット機能を実装する必要があります。この記事では、PHPを使用してリアルタイムチャット機能を開発するための高同時処理技術と、それに対応するコード例を紹介します。 1. 長時間接続テクノロジーを使用する リアルタイム チャット機能の特徴の 1 つは、オンライン ユーザーにリアルタイムでメッセージをプッシュする必要があることです。従来の Web 開発では、

分散ロックを使用して PHP の高い同時処理能力を向上させる方法 分散ロックを使用して PHP の高い同時処理能力を向上させる方法 Aug 13, 2023 pm 03:51 PM

分散ロックを使用して PHP の高い同時処理能力を向上させる方法 今日のインターネット アプリケーションでは、高い同時処理能力が重要な問題です。ユーザー数が増加し、ビジネスが拡大するにつれて、同時リクエストを効果的に処理する方法は、すべての開発者が解決しなければならない課題となっています。 PHP アプリケーションでは、分散ロックを使用してシステムの高い同時処理能力を向上させることができます。この記事では、分散ロックの概念と原理を紹介し、コード例を通じて PHP アプリケーションで分散ロックを使用する方法を示します。 1. 分散ロックの概念と原理 分散ロックを理解することができます。

PHP バックエンド API 開発における高同時実行性と高負荷に対処する方法 PHP バックエンド API 開発における高同時実行性と高負荷に対処する方法 Jun 17, 2023 am 10:12 AM

モバイル インターネットの急速な発展に伴い、高同時実行性と高負荷処理をサポートする必要があるアプリケーションがますます増えており、オープンソースのスクリプト言語である PHP が、特にインターネット分野で多くの Web サイト アプリケーション開発の主流となっています。 。ただし、PHP を API 開発に使用する場合、高い同時実行性と高負荷をどのように処理するかなど、いくつかの困難に直面します。この記事では、これらの問題に対処するためのベスト プラクティスをいくつか紹介します。 1. 水平スケーリング 水平スケーリングは、サーバーの数を増やすことによって高い同時実行性と負荷に対応する一般的な方法です。

See all articles