ホームページ >バックエンド開発 >PHPチュートリアル >csdn ダウンロードと同様のパフォーマンスの問題への対処 [ディスカッション歓迎]
csdn のダウンロード チャネルでは、ユーザーが添付ファイルをダウンロードした場合、次回ダウンロードするときにポイントを差し引く必要はありません。
現在、同様の関数を実装計画として、添付ファイル テーブルにフィールドを追加することです。download_uids は、添付ファイルをダウンロードしたすべてのユーザーの ID を保存するために使用されます。次に、ユーザーがダウンロードするときに、まず in_array() 関数を使用して、添付ファイルに記録されている download_uid にユーザー uid が存在するかどうかを確認します。存在する場合、ゴールド コインの控除操作は実行されません。が実行され、array_push が実行されます。
重要なポイント: 大規模な配列 (最大 30,000 ユーザー) に対する in_array() の操作にパフォーマンスの問題はありますか。
array_push() は大規模な配列 (最大 30,000 ユーザー) に対してパフォーマンス上の問題を抱えていますか?
2 つのフィールドを持つ新しいテーブルを作成します
uid ユーザー ID を保存します
リソース ID を保存します
クエリユーザーが特定のリソースをダウンロードしたかどうか
select * from tbl_name where uid=$uid and Did=$did
ユーザーがダウンロードしたリソースをクエリする
select * from tbl_name where uid=$uid
どのユーザーが特定のリソースをダウンロードしたかをクエリするresource
select * from tbl_name where Did=$did
2 つのフィールドを持つ新しいテーブルを作成する
uid ユーザー ID を保存する
Did リソース ID を保存する
ユーザーがリソースをダウンロードしたかどうかをクエリする
select * from tbl_name where uid= $uid と Did= $did
ユーザーがダウンロードしたリソースをクエリします
select * from tbl_name where uid=$uid
どのユーザーが特定のリソースをダウンロードしたかをクエリします
select * from tbl_name where Did=$did
ありがとう、Buzhu 、勉強になりました。