MySQL マスター/スレーブ レプリケーションは、データベース システムの可用性とパフォーマンスを向上させる、一般的に使用されるデータ バックアップおよび負荷分散ソリューションです。実際のアプリケーションでは、マスター/スレーブ レプリケーションのパフォーマンスを評価および比較することが非常に重要です。この記事では、MySQL マスター/スレーブ レプリケーションの負荷分散効果を実際の測定結果とパフォーマンス比較を通じて説明します。
1. MySQL マスター/スレーブ レプリケーションの原理
MySQL マスター/スレーブ レプリケーションは、1 つの MySQL サーバー (マスター サーバーと呼ばれます) から他の MySQL サーバー (スレーブ サーバーと呼ばれます) にデータをコピーすることによって実現されます。マスター サーバーはバイナリ ログに更新操作を記録し、スレーブ サーバーはバイナリ ログからこれらの更新操作を読み取って実行します。このようにして、マスター/スレーブ レプリケーションは自動データ同期を実現し、障害回復機能と負荷分散機能を提供します。
2. 実験環境と方法
この実験では 1 台のマスター サーバーと 3 台のスレーブ サーバーを使用しました。マスターサーバーとスレーブサーバーの構成は次のとおりです。
マスターサーバー:
スレーブ サーバー:
実験方法は次のとおりです:
import time import mysql.connector # 连接数据库 cnx = mysql.connector.connect(user='user', password='password', host='192.168.0.1', database='test') cursor = cnx.cursor() # 查询数据 starttime = time.time() query = "SELECT * FROM table" cursor.execute(query) endtime = time.time() # 输出查询结果和查询耗时 for row in cursor: print(row) print("Query Time:", endtime - starttime) # 关闭连接 cursor.close() cnx.close()
サーバーからの
1 | |
---|---|
2 | 3.342 |
3 | 3.187 |
次に、マスター サーバー上のレプリケーションを停止し、スレーブ サーバーに再度クエリを実行し、クエリ時間を記録します。結果を次の表に示します。 |
サーバーからの送信
1 | |
---|---|
2 | 1.297 |
##3 | 1.278 |
# 比較すると、マスター/スレーブ レプリケーションの場合、クエリに時間がかかり、平均で約 3 秒かかることがわかります。レプリケーションを停止すると、クエリ時間が大幅に短縮され、平均して約 1 秒になります。これは、マスター/スレーブ レプリケーションがクエリのパフォーマンスに一定の影響を与えることを示しています。 | IV. 結論と要約 |
MySQL マスター/スレーブ レプリケーションはクエリに一定の影響を与えます。マスター/スレーブ レプリケーション これにより、クエリ時間が増加します。
レプリケーションを停止すると、クエリのパフォーマンスが大幅に向上し、クエリ時間が短縮されます。
以上がMySQLマスタースレーブレプリケーションの負荷分散効果:実測結果と性能比較の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。