はじめに
kintoneの性能は、「同時リクエスト数」と「リクエストの処理時間」との掛け合わせで考えられます。
「リクエストの処理時間」は1件ずつのリクエストの処理に要する時間で、取り扱うデータ量が影響します。
本記事では
kintone REST APIのレコード一括取得
を利用する場合に、取得するフィールドを指定することでAPI実行時間がどう変化するのかを紹介します。
kintoneの性能についての詳細は
kintoneの性能Vol.1 - リクエストの処理時間
を確認してください。
得られる効果
次のようなケースかつ多くのレコードを一括取得する場合に効果が期待できます。
- アプリのフィールド数がとても多いが、必要なのは一部のフィールド
- 特定のフィールドに長い文字列が含まれているが、そのフィールドは不要
また、時間短縮以外にも、ネットワーク負荷やクライアント側でのメモリ使用量の低減も期待できます。
フィールドを指定する方法
レコード一括取得REST API
のfields
パラメーターに、取得したいフィールドのフィールドコードを指定します。
以下はJavaScriptでの例です。4行目でfields
パラメーターを指定しています。
|
|
検証内容
取得するフィールド数と1リクエストあたりのAPIの実行時間の関係を調べます。
次のようなフォームを持ったアプリを用意しました。
結果をわかりやすくするため、極端な構成にしています。
100個の文字列(複数行)のフィールドを配置し、それぞれの文字列フィールドに約1[KB]の文字列を保存したレコードを500件登録します。
そして、取得するフィールド数と レコード一括取得REST API の実行時間の関係を調べました。
検証結果
結果は次のとおりです。
取得するフィールド数に比例して、APIの実行時間も増加しています。
つまり、取得するフィールドを少なくすればAPIの実行時間を短縮できることが分かりました。
今回の検証では500件の取得のため、差は1秒程度ですが、数千件、数万件のレコードを取得する場合はさらに大きな差になります。
おわりに
レコード一括取得REST API
のfields
パラメーターを指定することでAPIの実行時間を短縮できることを紹介しました。
アプリのフィールド数が多い場合や特定のフィールドに長い文字列が含まれている場合は大きな効果があります。
フィールド数やレコード数は時間の経過にしたがって増加する傾向があります。
そのため、フィールド数やレコード数が少ない場合でも、数年先を見据えてfields
パラメーターを指定することをおすすめします。
このTipsは、2018年12月版kintoneで動作を確認しています。