0

だから私は2つのDBを持っています。1 つはメイン ホスト (Forums-Site) にあり、もう 1 つはその他の情報用です。他の DB を使用している理由は、ホストがリモート接続を許可していないためです。だから私は今のところこの方法を試すことを余儀なくされています。

このコードをもっとうまく書きたいだけです。私が話しているより良いのは、別の接続を作成したい場合にこれを使用する正しい方法であり、最適化できる場合は、その方法を教えてください.

$connection = mysql_connect("Host", "User", "Pass") or die(mysql_error());
mysql_select_db("DB", $connection);

$gs_kdq = mysql_query("SELECT SUM(Kills) AS g_killz, SUM(Deaths) AS g_deathz FROM Users", $connection);
$gs_kd = mysql_fetch_assoc($gs_kdq);

$gs_players = mysql_query("SELECT * FROM Users", $connection) or die(mysql_error());
$gs_Something0 = mysql_query("SELECT * FROM Something0", $connection) or die(mysql_error());
$gs_Something1 = mysql_query("SELECT * FROM Something1", $connection) or die(mysql_error());
$gs_Something2 = mysql_query("SELECT * FROM Something2", $connection) or die(mysql_error());

mysql_num_rows($gs_players);
mysql_num_rows($gs_Something0);
mysql_num_rows($gs_Something1);
mysql_num_rows($gs_Something2);

(私が思うに) mysql_num_rows が原因で、フォーラムの読み込みが少し遅くなります。

4

1 に答える 1

6

テーブルの大きさを調べるためだけに、テーブルからすべてのデータを読み取っています。SQL には、これを行うためのはるかに高速な方法があります

SELECT COUNT(*) FROM SomeTable

WHEREこれにより、そのテーブルの行数を含む 1 つの結果が返されます (句を追加すると、一致する数が返されます)。

于 2012-09-28T17:20:51.937 に答える