Mysql
在 SQL 查詢中或通過程式語言使用字元串函式和算術計算?
我需要大量的算術和字元串函式來處理從
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 前端。