Eine Möglichkeit, die folgenden Abfragen oder einige von ihnen zu kombinieren? Mein Ziel ist eine schnellere Leistung mit weniger Einsätzen. Ich weiß jedoch nicht, wie ich mit dem ON DUPLICATE KEY UPDATE new_table.pages=VALUES(pages)
umgehen soll, wo ich mehr als 2 Variablen einfügen werde.Wie können diese Abfragen kombiniert werden, um eine schnellere Leistung zu erzielen?
mysql_query("INSERT INTO new_table (hash, pages)
SELECT hash, COUNT(id) AS pages
FROM behaviour GROUP BY hash
ON DUPLICATE KEY UPDATE new_table.pages=VALUES(pages)");
mysql_query("INSERT INTO new_table (hash, visits)
SELECT hash, visits from audience
ON DUPLICATE KEY UPDATE new_table.visits=audience.visits");
mysql_query("INSERT INTO new_table (hash, first_visit)
SELECT hash, timestamp from audience
ON DUPLICATE KEY UPDATE new_table.first_visit=audience.timestamp");
mysql_query("INSERT INTO new_table (hash, last_visit)
SELECT hash, max(timestamp) from behaviour
group by hash
ON DUPLICATE KEY UPDATE new_table.last_visit=VALUES(last_visit)");
mysql_query("INSERT INTO new_table (hash, goals)
SELECT alerts_data_hash, COUNT(*) AS goals
FROM alerts_data
WHERE alerts_data_status = 'goal'
GROUP BY alerts_data_hash
ON DUPLICATE KEY UPDATE new_table.goals=VALUES(goals)");
können Sie eine Multi-Abfrage verwenden, indem Sie auf mysqli_api; das ist eine option und das api könnte etwas schneller sein als mysql_. Könnte die Frage nicht lösen, wird aber helfen, Ihren Code ein bisschen zu reduzieren. –
Plain mysql_ ist seit einiger Zeit veraltet. Sie sollten zur 'mysqli_'-Familie der Funktionen springen – yivi
Jedes Mal, wenn Sie [die' mysql_'] (http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php verwenden) Datenbankerweiterung im neuen Code ** [ein Kätzchen wird irgendwo in der Welt erdrosselt] (http://2.bp.blogspot.com/-zCT6jizimfI/UjJ5UTb_Bei/AAAAAAAACgg/AS6XCd6aNdg/s1600/luna_getting_strangled.jpg) ** Es ist veraltet und seit Jahren und ist für immer in PHP7 verschwunden. Wenn du nur PHP lernst, verbringe deine Energie damit, die Datenbankerweiterungen 'PDO' oder' mysqli' zu lernen. [Start hier] (http://php.net/manual/en/book.pdo.php) – RiggsFolly