2012-11-23 106 views
-1

我有一個簡單的問題,但我無法在互聯網上找到答案。 我有一個名爲結果的SQL表,只有2個字段:名稱和內容。 由於每個單獨的名稱都是唯一的,我將主鍵放在字段名稱上。SQL主鍵Php和查詢速度

我想用PHP做的就是指定一個名稱,並獲得其內容:

$req = $bdd->prepare('SELECT contents FROM result WHERE name = :name'); 
$req->execute(array('name' => $inputName)); 
$donnees = $req->fetch(); 
$result=$donnees['contents']; 
echo $result; 

當然此代碼的工作,但我想知道的是我必須指定在我的PHP代碼中的名稱是主鍵或者它已經知道它,因此我的查詢的執行速度最大。

謝謝。

+7

PHP既不知道也不關心數據庫上的主鍵:這就是數據庫服務器的工作 –

+0

要增加上述內容,您所做的完全沒問題。你的表現應該是最佳的。 –

+0

好的,謝謝,實際上我正在測試這個本地服務器上的版本與瓦特,當我通過.txt文件加載數據的互聯網網頁加載速度比當我使用我的SQL數據庫時,這是正常的? – user1836529

回答

0

不要做過早的優化。

首先你需要一個真實世界的用例,那麼你需要配置文件/基準測試,以便找到瓶頸,然後然後想想什麼和如何優化。

分析SQL查詢可以使用EXPLAIN SELECT ...來完成 - 但如果名稱已經編入索引,那麼對於簡單查詢就不需要了。

如果你想使用這個結果表作爲緩存 - 這可能不是最好的解決方案。考慮使用像memcache這樣的內存中鍵值存儲。

0

這不是php的工作來處理數據庫的主要(或任何)鍵。 由於主鍵意味着將創建此列的索引,因此您的執行速度將處於最大值。