異なるサーバーに 2 つのテーブルがあり、データセットを組み合わせて一致させる効率的な方法を見つける手助けが必要です。次に例を示します。
ストーリーを保持するサーバー 1 から、次のようなクエリを実行します。
query = """SELECT author_id, title, text
FROM stories
ORDER BY timestamp_created DESC
LIMIT 10
"""
results = DB.getAll(query)
for i in range(len(results)):
#Build a string of author_ids, e.g. '1314,4134,2624,2342'
しかし、サーバー 2 から各 author_id に関する情報を取得したいと思います。
query = """SELECT id, avatar_url
FROM members
WHERE id IN (%s)
"""
values = (uid_list)
results = DB.getAll(query, values)
ここで、これら 2 つのクエリを組み合わせる方法が必要なので、ストーリー、avatar_url、member_id を含む dict を作成します。
このデータが 1 つのサーバー上にある場合、次のような単純な結合になります。
SELECT *
FROM members, stories
WHERE members.id = stories.author_id
しかし、複数のサーバーにデータを保存しているため、これは不可能です。
これを行う最も効率的な方法は何ですか? 私のアプリケーション コードでマージが発生する可能性があることは理解しています... dict ループの数を最小限に抑える効率的なサンプル コードは大歓迎です!
ありがとう。