伺服器外掛程式 API 具有以下特性
-
所有外掛程式都有幾個共同點。
每個外掛程式都有一個名稱,可以在 SQL 陳述式中參照,以及其他中繼資料,例如作者和描述,以提供其他資訊。這些資訊可以在
INFORMATION_SCHEMA.PLUGINS
表格中或使用SHOW PLUGINS
陳述式檢查。 -
外掛程式框架是可擴展的,以容納不同種類的外掛程式。
雖然外掛程式 API 的某些方面對所有類型外掛程式都通用,但 API 也允許特定於類型的介面元素,以便可以建立不同類型的外掛程式。具有一個用途的外掛程式可以具有最適合其自身需求的介面,而不是某些其他外掛程式類型的需求。
存在幾種類型外掛程式的介面,例如儲存引擎、全文剖析器和
INFORMATION_SCHEMA
表格。可以新增其他介面。 -
外掛程式可以向使用者公開資訊。
外掛程式可以實作系統和狀態變數,這些變數可以透過
SHOW VARIABLES
和SHOW STATUS
陳述式取得。 -
外掛程式 API 包括版本資訊。
外掛程式 API 中包含的版本資訊使外掛程式程式庫及其包含的每個外掛程式都能夠自我識別,並了解用於建立程式庫的 API 版本。如果 API 隨著時間推移而變更,版本號碼將會變更,但伺服器可以檢查給定外掛程式程式庫的版本資訊,以判斷它是否支援程式庫中的外掛程式。
有兩種版本號碼。第一種是針對一般外掛程式框架本身的版本。每個外掛程式程式庫都包含此類版本號碼。第二種版本適用於個別外掛程式。每個特定類型外掛程式都有其介面的版本,因此程式庫中的每個外掛程式都有一個特定於類型的版本號碼。例如,包含全文剖析器外掛程式的程式庫具有一般外掛程式 API 版本號碼,而外掛程式具有特定於全文外掛程式介面的版本號碼。
-
外掛程式 API 實作了安全性限制。
外掛程式程式庫必須安裝在特定的專用目錄中,其位置由伺服器控制,且無法在執行時變更。此外,程式庫必須包含特定的符號,以將其識別為外掛程式程式庫。如果不是作為外掛程式建置,伺服器將不會將其載入為外掛程式。
-
外掛程式可以存取伺服器服務。
服務介面公開伺服器功能,外掛程式可以使用普通的函式呼叫來存取這些功能。有關詳細資訊,請參閱 MySQL 外掛程式服務。
在某些方面,伺服器外掛程式 API 類似於它所取代的較舊的可載入函式 API,但外掛程式 API 比舊介面具有多項優勢。例如,可載入函式沒有版本資訊。此外,較新的外掛程式介面消除了較舊的可載入函式介面的安全性問題。舊的用於編寫非外掛程式可載入函式的介面允許從系統動態連結器搜尋的任何目錄載入程式庫,並且識別可載入函式程式庫的符號相對不特定。
客戶端外掛程式 API 具有相似的架構特性,但客戶端外掛程式不像伺服器外掛程式那樣可以直接存取伺服器。