您可以自行搭建資料庫,或者購買阿里雲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