數據庫性能取決於數據庫級別的幾個因素,好比表、查詢和配置設置,這些軟件構造致使了硬件級別的CPU和I/O操做,你必須將其最小化並儘量提升效率。在研究數據庫性能時,首先要學習軟件方面的高級規則和指導原則,並使用壁鐘時間測量性能。數據庫
典型用戶的目標是從現有的軟件和硬件配置中得到最佳的數據庫性能,高級用戶尋找機會來改進MySQL軟件自己,或者開發本身的存儲引擎和硬件設備來擴展MySQL生態系統。緩存
使數據庫應用程序快速運行的最重要因素是它的基本設計:服務器
你是否爲每一個表使用了適當的存儲引擎,並利用了所使用的每一個存儲引擎的優勢和特性?特別是,選擇事務性存儲引擎(如InnoDB
)或非事務性存儲引擎(如MyISAM
)對性能和可伸縮性很是重要。併發
InnoDB
是建立新表的默認存儲引擎,在實踐中,先進的InnoDB
性能特性意味着InnoDB
表一般比簡單的MyISAM
表表現得更好,特別是對於繁忙的數據庫。
InnoDB
表的工做負載,也適用於只讀MyISAM
表。InnoDB
存儲引擎能夠在不須要你參與的狀況下處理大多數鎖定問題,從而提升數據庫的併發性,減小代碼的實驗和調優量。InnoDB
緩衝池和MyISAM
鍵緩存。隨着數據庫變得愈來愈忙,任何數據庫應用程序最終都會遇到硬件限制,DBA必須評估是否能夠調優應用程序或從新配置服務器以免這些瓶頸,或者是否須要更多的硬件資源,系統瓶頸一般來自如下來源:性能
要在可移植MySQL程序中使用面向性能的SQL擴展,能夠在/*! */
註釋分隔符內的語句中封裝特定於MySQL的關鍵字,其餘SQL服務器忽略已註釋的關鍵字。學習