我一直聽到有人說使用遊標有問題,這在Microsoft SQL Server中尤其如此,因爲它們非常慢。 MySQL上的Cursors也是這種情況嗎? MySQL中的遊標是否也會降低性能?有人可以請教在MySQL中使用遊標嗎?MySQL上的遊標 - 好還是壞
回答
大多數現代數據庫(包括MySQL)都設計用於執行基於集合的操作。遊標的問題是它們執行基於行(或程序)的操作。正因爲如此,當您使用遊標執行可以在現代DBMS上不使用遊標的情況下完成的工作時,您幾乎總能看到性能下降。
看一看this article,這兩個人都做得不錯。它是用SQL Server編寫的,但大部分概念都適用。
哇......真是太棒了!我會嘗試盡我所能去理解SQL中的「基於集合」和「程序化」方法,以及爲什麼「基於集合」的方法更好。我相信我可以在瞭解了所有情況後獲得證書。 –
遊標本質上是迭代的 - 無論數據庫類型如何,它們肯定會變慢。因此,您應該盡一切可能避免它們,並嘗試使用SQL查詢來查找解決方案。然而,它們存在着查詢無法解決的問題 - 所以只有在絕對必要時才使用它們。
與「什麼」相比,「定義較慢」? –
umm與非基於cursur的解決方案相比較 - 「直接sqls」,如果有可能的話。我不知道這是不是很明顯 –
哦,原諒,我不知道'直接sqls'是什麼。所以我不能給出任何答案,如果兩者相互比較,他們是更好還是更差。 –
只需創建並填寫臨時表。無論如何,這就是大多數RDBMS的實現遊標。
- 1. IDENTITY列 - 好還是壞?
- 2. 多表好還是壞?
- 3. 用NSUserDefault保存遊戲進度:好還是壞主意?
- 4. 國際化標題/元標籤好還是壞的做法?
- 5. openCV置信度值 - 是好還是壞?
- 6. HTML表單的好還是壞?
- 7. PHP MVC中的BaseModel,好還是壞?
- 8. ASP MVC HTML助手 - 好還是壞?
- 9. 粘滯會話:好還是壞?
- 10. 春季註釋 - 好還是壞?
- 11. 存儲庫模式:好還是壞?
- 12. MVC企業領域 - 好還是壞?
- 13. 使用訪問器:好還是壞?
- 14. HTML:錯誤輸入好還是壞?
- 15. 實用程序類別..好還是壞?
- 16. 連接池戰略:好,壞還是醜?
- 17. 方法重載 - 設計好還是壞?
- 18. 可選參數,好還是壞?
- 19. 繼承C:好,壞,還是其他?
- 20. 後構建提交:好還是壞?
- 21. Gridview分頁好還是壞 - 性能
- 22. 在源代碼中顯示MySQL行ID:好還是壞?
- 23. php:將圖像存儲到Mysql blob中,好還是壞?
- 24. Gtk +佈局表格 - 好還是壞?
- 25. 這種方法是增加MySQL性能的好主意還是壞主意?
- 26. 對於大型數據庫,索引是好還是壞?
- 27. WCF中的'ref'參數是壞的還是好的?
- 28. 在已經散列的值上使用HMAC,是好還是壞的做法?
- 29. 如何檢查我的彙總查詢是好還是壞?
- 30. 在mysql中解釋更高的行數是好還是不好?
這很大程度上取決於您有什麼替代方案。 – Mchl
替代品?如果您詢問關於不同數據庫類型的決定,那麼答案是 - none ... :-( –
否。如果'您的遊標對您來說太慢,您還能使用什麼?'的替代選項。例如,您可以使用某種腳本語言從數據庫中提取數據,在那裏處理數據並將數據包放入數據庫(如果需要的話)。這可能會或可能不會比光標更快 - 取決於許多因素。 – Mchl