本節列出一些用於提高查詢處理速度的其他提示。
如果您的應用程式發出數個資料庫請求以執行相關更新,將這些陳述式合併到儲存常式中可以幫助提升效能。同樣地,如果您的應用程式根據數個欄位值或大量資料計算單一結果,將計算合併到可載入函式中可以幫助提升效能。接著,其他查詢、應用程式,甚至是用不同程式語言編寫的程式碼都可以重複使用產生的快速資料庫操作。請參閱 第 27.2 節「使用儲存常式」和 將函式新增至 MySQL 以取得更多資訊。
若要修正
ARCHIVE
表格發生的任何壓縮問題,請使用OPTIMIZE TABLE
。請參閱 第 18.5 節「ARCHIVE 儲存引擎」。如果可能,請將報表分類為「即時」或「統計」,其中統計報表所需的資料僅從定期從即時資料產生的摘要表格建立。
如果您有不符合行列表格結構的資料,您可以將資料壓縮並儲存在
BLOB
欄位中。在這種情況下,您必須在應用程式中提供程式碼來壓縮和解壓縮資訊,但這可能會節省讀取和寫入相關值集合的 I/O 操作。對於 Web 伺服器,請將圖片和其他二進位資產儲存為檔案,並將路徑名稱儲存在資料庫中,而不是檔案本身。大多數 Web 伺服器在快取檔案方面的效能優於資料庫內容,因此使用檔案通常更快。(儘管在這種情況下,您必須自行處理備份和儲存問題。)
如果您需要非常高的速度,請查看低階 MySQL 介面。例如,透過直接存取 MySQL
InnoDB
或MyISAM
儲存引擎,與使用 SQL 介面相比,您可以獲得顯著的速度提升。同樣地,對於使用
NDBCLUSTER
儲存引擎的資料庫,您可能會希望研究是否可以使用 NDB API(請參閱 MySQL NDB Cluster API 開發人員指南)。複製可以為某些操作提供效能優勢。您可以在複本之間分配用戶端檢索,以分散負載。為了避免在進行備份時減慢來源的速度,您可以使用複本進行備份。請參閱第 19 章複製。