私は、mysqlデータベースから膨大な数のオブジェクトを読み込んだ後、同じmysqlデータベースからオブジェクトのリストを読み込みます。wamp enviornemntで永遠に実行されないPHPスクリプトを効率的に実行するには...?
PHPを使用して、不規則な動作をチェックするために各リストを繰り返していきたいと思います。しかし、私はスクリプトを実行するたびに実行するために永遠にかかる(これまで私はそれが完了したとは思わない)。私ができる最適化はありますか?実行するのにこの時間がかかりません...?最初のリストにはおよそ64150のエントリがあり、2番目のリストには約1748のエントリがあります。
これは、一般的に擬似コードでのコードの外観です。この時点の結果が瞬時にしている...しかし、私はこれを行うとき、それは、永遠に実行するのにかかる、それは決して終わらないように思えるまでは
// an array of size 64000 containing objects in the form of {"id": 1, "unique_id": "kqiweyu21a)_"}
$items_list = [];
// an array of size 5000 containing objects in the form of {"inventory: "a long string that might have the unique_id", "name": "SomeName", id": 1};
$user_list = [];
...
foreach($items_list as $item)
{
foreach($user_list as $user)
{
if(strpos($user["inventory"], $item["unique_id"]) !== false)
{
echo("Found a version of the item");
}
}
}
なお、エコーはまれべき$ items_listと$ user_list配列がほぼ即座に生成されるため、問題はMySQLでは発生しません。リスト全体を反復しようとすると永遠に続くようになります...
'私は実行できる最適化がありますか?この実行に時間がかからないのですか? ' - はい! JOINされたデータベースクエリを使用して、その通常の動作をチェックします。大量のデータをPHPにロードして入れ子にした配列を反復処理しないでください –
それぞれのIDを*キー*として配列をインデックス化すると、配列キーで高速に検索できます。現在のデータベースサイズ* –
私はここで何か間違って見ることができません:-( – Strawberry