我正在使用php和MySql的組合。我的情況是我使用兩個查詢(一個'選擇'和'插入')的活動,有時3個查詢。這將由不同的用戶經常進行。SQL函數的單獨查詢?
我正在使用mysql_query函數分別執行查詢。這是好還是使用執行所有查詢的SQL函數更好?我想知道哪種性能更好。
我正在使用php和MySql的組合。我的情況是我使用兩個查詢(一個'選擇'和'插入')的活動,有時3個查詢。這將由不同的用戶經常進行。SQL函數的單獨查詢?
我正在使用mysql_query函數分別執行查詢。這是好還是使用執行所有查詢的SQL函數更好?我想知道哪種性能更好。
如果您使用的是mysqli
擴展,你可以利用multi_query
:
http://php.net/manual/en/mysqli.multi-query.php
但是請注意,如果查詢的一個依賴於另一個查詢的成功,他們應該被分離出來進行錯誤檢查。
在我看來,創建一個能夠很好地執行單個操作的函數是更好的做法。這使得這些功能更容易測試,並允許它們在將來的其他操作中使用。在你的情況下,我會創建一個stored procedure來執行例程。
如果你能展示具體的例子,這將有所幫助 - 現在,這都是非常假設的。但是:
如果您可以將這些操作合併爲一個查詢,那麼這是最快的選擇。例如:
insert into tableA
select x, y, z
from tableB
where Foo = Bar
如果您必須對select語句的結果進行一些處理,則可以創建一個存儲過程來執行處理。這樣可以避免將數據發送回PHP服務器,這應該會帶來性能上的好處 - 但是,PHP可能比存儲過程更好/更快地執行處理。例如,如果你不得不操作文本,我會用PHP來完成。
這是我的情況。第二個查詢將僅基於第一個查詢的結果執行。所以哪一個更好地分別執行查詢或者編寫一個sql函數 – jeeva
然後分別執行它們。您需要錯誤地檢查第一個函數實際通過之後才能進行依賴它的調用。 –
如果一個人依賴另一個人,你必須**分別執行他們,因爲你必須檢查程序層的反饋。 **編輯**儘管多查詢功能可能存在「回滾出錯」選項。 – Rudie