自建數(shù)據(jù)庫與RDS性能對比的注意事項
您可以通過測試來對比自建數(shù)據(jù)庫與RDS的性能差異,但是對比時需要保證二者具有相同的條件,如相同的網(wǎng)絡(luò)環(huán)境、性能規(guī)格、數(shù)據(jù)庫版本等。本文介紹具體的注意事項。
您可以自行搭建數(shù)據(jù)庫,或者購買阿里云RDS實例。推薦您購買RDS實例,因為它完全由阿里云托管,而且有完備的安全、備份、恢復(fù)、擴(kuò)容、性能優(yōu)化等機(jī)制,您無需執(zhí)行各種安全措施(如搭建備庫)和維護(hù)工作,只需專注于業(yè)務(wù)的發(fā)展和創(chuàng)新。
關(guān)于自建數(shù)據(jù)庫與RDS的各方面對比,請參見RDS與自建數(shù)據(jù)庫對比優(yōu)勢。
網(wǎng)絡(luò)環(huán)境
應(yīng)用和自建數(shù)據(jù)庫都需要部署于ECS實例,且與RDS實例位于同一地域,使得應(yīng)用與RDS之間,以及應(yīng)用與自建數(shù)據(jù)庫之間都是通過內(nèi)網(wǎng)進(jìn)行通信。
說明應(yīng)用與自建數(shù)據(jù)庫需要部署于兩臺不同的ECS實例。如果部署于同一臺ECS實例,則應(yīng)用到自建數(shù)據(jù)庫的網(wǎng)絡(luò)路徑短于應(yīng)用到RDS的網(wǎng)絡(luò)路徑,而且應(yīng)用對CPU資源的占用也會影響自建數(shù)據(jù)庫的性能表現(xiàn),對比測試將不公平。
您可以采用以下其中一種部署架構(gòu):
應(yīng)用、自建數(shù)據(jù)庫和RDS實例的主節(jié)點位于同一個可用區(qū)。
自建數(shù)據(jù)庫與RDS實例的主節(jié)點位于同一個可用區(qū)。應(yīng)用位于同一地域下的另一個可用區(qū)。
性能規(guī)格
自建數(shù)據(jù)庫所在ECS實例和RDS擁有相同的CPU核數(shù)與內(nèi)存。
數(shù)據(jù)庫版本
自建數(shù)據(jù)庫和RDS的數(shù)據(jù)庫版本相同,例如,兩者都為MySQL 5.6。
數(shù)據(jù)復(fù)制方式
主備節(jié)點之間的數(shù)據(jù)復(fù)制方式分為異步、半同步和強(qiáng)同步。關(guān)于數(shù)據(jù)復(fù)制方式的介紹,請參見數(shù)據(jù)復(fù)制方式。
具體要求如下表所示。
自建數(shù)據(jù)庫 | RDS |
無備庫,不涉及數(shù)據(jù)復(fù)制方式。 | 高可用系列,且數(shù)據(jù)復(fù)制方式為異步。 |
有1個備庫,且數(shù)據(jù)復(fù)制方式為異步。 | 高可用系列,且數(shù)據(jù)復(fù)制方式為異步。 |
有1個備庫,且數(shù)據(jù)復(fù)制方式為半同步。 | 高可用系列,且數(shù)據(jù)復(fù)制方式為半同步。 |
數(shù)據(jù)庫參數(shù)
自建數(shù)據(jù)庫和RDS的參數(shù)設(shè)置需要一致。
關(guān)于如何修改RDS的參數(shù)設(shè)置,請參見修改實例參數(shù)。
出于安全考慮,RDS不支持部分參數(shù)的修改。如果某參數(shù)不一致,而RDS不支持修改,請修改自建數(shù)據(jù)庫的參數(shù)。
案例分析
場景:某客戶正在將本地的業(yè)務(wù)系統(tǒng)遷移上云,在RDS上的SQL執(zhí)行時間明顯要比線下自建數(shù)據(jù)庫執(zhí)行時間要長1倍。
原因:自建數(shù)據(jù)庫與RDS的參數(shù)配置不同,如下所示:
用戶本地參數(shù)配置:
join_buffer_size = 128M
read_rnd_buffer_size = 128M
tmp_table_size = 128M
RDS參數(shù)配置:
join_buffer_size = 1M
read_buffer_size = 1M
tmp_table_size =256K