0

仕事用の単純な Wordpress プラグインを作成していますが、この場合 Transients API を使用することが実用的かどうか、または別の方法を探す必要があるかどうか疑問に思っています。

プラグインの目的は単純です。USZip Web サービス ( http://www.webservicex.net/uszip.asmx?op=GetInfoByZIP ) を呼び出してデータを取得しています。当社の営業チームは、プラグインが実行される見込み顧客の取り込みシートを使用しています。

APIの呼び出し回数を減らしたいので、郵便番号ごとにtransientをキーにして、入ってくるデータ(cityとzip)を格納することを考えました。特定の郵便番号に対応するデータがすでに存在する場合は、API 呼び出しを行う必要はありません。

ここに私の懸念があります: 1. 簡単な検索の後、一時的なデータが wp_options テーブルに格納されており、データを格納するとすぐにそのテーブルが膨張することに気付きました。データベースが巨大になった場合、これにより重大なパフォーマンスの問題が発生しますか? 2. これほど多くの一時的なキーを作成するのは恐ろしいことですか? 数か月で簡単に数千になる可能性があります。

Transient を使用するのが最善の方法ではない場合、正しい方向に向けて助けていただけますか? ありがとう!

PS 私は Transients API と Options API を選択しました。郵便番号が頻繁に変更されるわけではないことは知っていますが、変更される場合もあります。有効期限を3ヶ月に設定しました。

4

1 に答える 1

1

膨張の少ない解決策は次のようになります。

  1. uszipオプション内にシリアル化された配列で呼び出された単一のオプションを格納します
  2. 毎回配列全体を取得し、郵便番号が存在するかどうかを確認するだけです
  3. 存在しない場合は、データを取得して、トランジェント全体を再度保存します

米国には43,000の郵便番号が存在することを考慮して、この表のシリアル化された配列の上限(9,000要素)に達しないようにする必要があります。ただし、ほとんどの場合、郵便番号の非常にローカライズされたサブセットがあります。

于 2013-03-02T20:39:00.440 に答える