2012-09-28 53 views
0

所以我有2個DB。一個在我的主要主持人(論壇 - 網站),另一個是其他信息。我使用其他數據庫的原因是因爲我的主機不允許遠程連接。所以我現在被迫嘗試這種方式。如何加快mysql_num_rows這個查詢?

我想簡單地寫下這段代碼。通過更好的我談論的是,如果我想建立另一個連接,並且如果它可以優化,請使用它,這是正確的方法,請讓我知道如何。

$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。

+0

儘量不要使用SELECT * – Marc

+2

與問題沒有直接關係,但應該使用mysqli_或PDO,mysql_似乎不推薦使用。 –

+0

是Nadir,早些時候在讀關於PDO的內容。忘了在我的帖子中提到它。將其更改爲使用該格式。 – user1667191

回答

6

您正在讀取表格中的所有數據,以瞭解它們的大小。 SQL有a much faster way of doing this

SELECT COUNT(*) FROM SomeTable 

這將返回一個結果,在該表中的行數(你可以添加一個WHERE條款,它將返回匹配的數量)。

+0

謝謝!我只知道有一種更好的方式,但不知道從哪裏開始。 – user1667191

+0

@ user1667191對於入門,我建議看看[SQLite文檔](https://www.sqlite.org/lang.html),例如[聚合函數](https:// www。 sqlite.org/lang_aggfunc.html)。這種語言與MySQL的方言幾乎相同,但是文檔寫得更好,並且更短,這應該有助於概述什麼是可能的。如果某件事不能如你所期望的那樣工作,你可以隨時在Google上搜索「mysql $ thing_i_dont_understand」。 –