ホームページ  >  に質問  >  本文

proxySQL および MySQL Cluster を使用した挿入/更新後のわずかな遅延の問題

私たちは proxySQL で MySQL Cluster を使用しており、次のセットアップを行っています:

問題は次のとおりです: サーバー 2 のユーザーが SQL UPDATE、UPDATE クライアント SET name= 'New Name' WHERE id = 123 をトリガーします。 (この更新はサーバー 1 に送信され、次にサーバー 2 に送信されます)

同じコード ブロックで、レコード (SELECT name FROM Customers WHERE id =123) を選択すると、クエリはローカル サーバーに送信され、コードを 1 分間一時停止しない限り、結果は「古い名前」になります。 2 番目 (テスト用) 。

私たちが考えた解決策の 1 つは、接続 (PHP) を変更し、サーバー 1 に直接アクセスして残りのコード ブロックを取得することでした。しかし、それは目的を達成できず、理想とは程遠いものです (静かに大規模なコード ベースは更新が必要です) )。

proxySQL に関する解決策はありますか?

P粉194919082P粉194919082211日前310

全員に返信(1)返信します

  • P粉122932466

    P粉1229324662024-03-22 16:33:06

    レプリケーション レイテンシが高いスレーブ サーバーにクエリがルーティングされるのを防ぐために、テーブル mysql_server 列に最大レプリケ​​ーション レイテンシのしきい値を設定できます。 レプリケーションの最大遅延。参照: max_replication_lag

    max_replication_lag – 0 より大きい場合、ProxySQL は レプリケーションの遅延と、設定された制限を超えているかどうかを定期的に監視します。 しきい値に達すると、レプリケーションが追いつくまで一時的にホストが回避されます。

    クエリ ルールを作成して、クエリの読み取りと書き込みを分割することもできます。参照: ProxySQL 分割読み取り/書き込み

    重要: proxysql-gtid-causal-reads Mysql バージョン 5.7.5 以降を使用している場合は、主にこれで問題が解決される可能性があります。

    返事
    0
  • キャンセル返事