はじめに
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 で動作を確認しています。