遊標介紹
MySQL的遊標(cursor)是一個重要的概念,透過尋找資料與自己的理解,主要得出以下幾點關於自己的理解。
有資料緩衝的想法:遊標的設計是一種資料緩衝區的思想,用來存放SQL語句執行的結果。
先有資料基礎:遊標是先從資料表擷取資料後才能繼續靈活操作的技術。
類似於指標:遊標類似於指向資料結構堆疊中的指針,用來pop出所指向的數據,並且只能每次取一個。
遊標優缺點:
(1)遊標的優點:
因為遊標是針對行操作的,所以對從資料庫中select查詢得到的每一行可以進行分開的獨立的相同或不同的操作,是一種分離的想法。可以滿足對某個結果行進行特殊的操作。遊標與基於遊標位置的增刪改查能力。 MySQL資料庫中沒有特別描述一行的表達形式,但這是需要的,所以,個人理解的話,我覺得遊標是在關係資料庫這種面向集合的系統中抽離出來,單獨針對行進行表達(也可以理解成網上資料說的:遊標是面向集合與面向行的設計思想之間的一種橋樑)
(2)遊標缺點
遊標的缺點是針對有點而言的,也就是只能一行一行操作,在資料量大的情況下,是不適用的,速度過慢。這裡有個比喻就是:當你去ATM存錢是希望一次性存完呢,還是100一張一張的存,這裡的100一張一張存就是遊標針對行的操作。資料庫大部分是面對集合的,業務會比較複雜,而遊標使用會有死鎖,影響其他的業務操作,不可取。當資料量大時,使用遊標會造成記憶體不足現象。
以上是mysql遊標是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!