Mysql

在 SQL 查詢中或通過程式語言使用字元串函式和算術計算?

  • January 14, 2014

我需要大量的算術和字元串函式來處理從mysql數據庫中擷取的數據。哪個是首選:mysql函式或程式語言(例如,PHP)?

$result = $mysqli->query("SELECT A, B, C FROM table1");
while($row = $result->fetch_assoc() )
{
$a = str_replace("X", "Y", $row['A']);
$b = ($row['B']/$row['C')*1000;
}

要麼

$result = $mysqli->query("SELECT REPLACE(A, 'X', 'Y'), ((B/C)*1000) AS B FROM table1");
while($row = $result->fetch_assoc() )
{
$a = $row['A'];
$b = $row['B'];
}

這只是一個簡單的例子,沒有顯著差異,但是當計算量很大時,首選哪一個?

如果無論如何您要從數據庫中獲取相同數量的行,那麼您最好在應用程序中執行數學函式,而不是在數據庫中。SQL 中的數學計算速度非常慢。

另請注意,這會將計算從單個數據庫伺服器轉移到可能的多個 PHP 前端。當然,您也可以將負載分散到多個 MySQL 複製伺服器上;一般來說,您將擁有比 MySQL 後端更多的 PHP 前端。

引用自:https://dba.stackexchange.com/questions/56740