您可以自行搭建資料庫,或者購買阿里雲RDS執行個體。推薦您購買RDS執行個體,因為它完全由阿里雲託管,而且有完備的安全、備份、恢複、擴容、效能最佳化等機制,您無需執行各種安全措施(如搭建備庫)和維護工作,只需專註於業務的發展和創新。
關於自建資料庫與RDS的各方面對比,請參見RDS與自建資料庫對比優勢。
您也可以通過測試來對比自建資料庫與RDS的效能差異,但是對比時需要保證二者具有相同的條件,如相同的網路環境、效能規格、資料庫版本等。本文介紹具體的注意事項。
網路環境
- 應用和自建資料庫都需要部署於ECS執行個體,且與RDS執行個體位於同一地區,使得應用與RDS之間,以及應用與自建資料庫之間都是通過內網進行通訊。
说明 應用與自建資料庫需要部署於兩台不同的ECS執行個體。如果部署於同一台ECS執行個體,則應用到自建資料庫的網路路徑短於應用到RDS的網路路徑,而且應用對CPU資源的佔用也會影響自建資料庫的效能表現,對比測試將不公平。
- 您可以採用以下其中一種部署架構:
- 應用、自建資料庫和RDS執行個體的主節點位於同一個可用性區域。
- 自建資料庫與RDS執行個體的主節點位於同一個可用性區域。應用位於同一地區下的另一個可用性區域。
效能規格
自建資料庫所在ECS執行個體和RDS擁有相同的CPU核心數與記憶體。
資料庫版本
自建資料庫和RDS的資料庫版本相同,例如,兩者都為MySQL 5.6。
資料複製方式
主備節點之間的資料複製方式分為非同步、半同步和強同步。關於資料複製方式的介紹,請參見資料複製方式。
具體要求如下表所示。
自建資料庫 | RDS |
---|---|
無備庫,不涉及資料複製方式。 | 高可用版,且資料複製方式為非同步。 |
有1個備庫,且資料複製方式為非同步。 | 高可用版,且資料複製方式為非同步。 |
有1個備庫,且資料複製方式為半同步。 | 高可用版,且資料複製方式為半同步。 |
有2個備庫,且資料複製方式為強同步。 | 金融版(資料複製方式為強同步,且無法修改)。 |
資料庫參數
自建資料庫和RDS的參數設定需要一致。
關於如何修改RDS的參數設定,請參見修改執行個體參數。
说明 出於安全考慮,RDS不支援部分參數的修改。如果某參數不一致,而RDS不支援修改,請修改自建資料庫的參數。
案例分析
情境:某客戶正在將本地的業務系統遷移上雲,在RDS上的SQL執行時間明顯要比線下自建資料庫執行時間要長1倍。
原因:自建資料庫與RDS的參數配置不同,如下所示:
- 使用者本地參數配置:
join_buffer_size = 128M
read_rnd_buffer_size = 128M
tmp_table_size = 128M
- RDS參數配置:
join_buffer_size = 1M
read_buffer_size = 1M
tmp_table_size =256K