[英]In PDO is there a difference in performance if a int is quoted as a string?
如果在准備好的PDO查詢中將整數綁定為字符串,那么性能是否存在差異? 在Mysql中,如果值綁定為int或字符串,則查詢可以正常工作,但是在執行此操作時性能是否有任何差異?
$pdo = new PDO(
"mysql:host={$host};port={$port};dbname={$dbname};charset=utf8",
$username,
$password
);
$statement = $pdo->prepare("SELECT * FROM `table` WHERE `id` = :param");
// Is there any performance difference between the two rows below
$statement->bindValue(":param", 5);
$statement->bindValue(":param", 5, PDO::PARAM_INT);
$statement->execute();
綁定參數和指定其類型之間是否有任何區別,或者只是將其引用為字符串?
如果你想完全采用你指定類型的方法比你沒有指定類型的方法稍快,默認類型是PDO::PARAM_STR
。
如果你運行它100萬次,平均值如下:
$stmt->bindValue(":param", 5, PDO::PARAM_INT);
) $stmt->bindValue(":param", 5);
) $stmt->bindValue(":param", 5, PDO::PARAM_STR);
) 使用PHP 5.6.3版進行測試; 32位Windows;
根據我的經驗,沒有這樣的表現不同。 MySQL會自動將字符串轉換為數字(取決於列類型)。
如果我想要精確,PDO :: PARAM_STR比PDO :: PARAM_INT慢。 默認情況下,PDO :: PARAM_STR。
這是因為服務器必須檢查您的數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.