kintone の性能 Vol.1 - リクエストの処理時間

目次

はじめに

本シリーズでは kintone の特性を知り、kintone を快適に利用するための考慮事項と改善策を案内します。

kintone は大企業や自治体の情報システム基盤として採用されることが増えています。
数千ユーザーの利用実績も増え、一般的な業務システムやコミュニケーション用途で性能問題が発生することはほとんどありません。
しかし、同時リクエスト数が多い場合や、アプリ設定が複雑な場合は、その限りではありません。

kintone で性能問題を引き起こさないために、設計者やエンジニアが知っておくべきことを 2 つの記事にまとめました。
本記事では Vol.1 として、kintone の性能やリクエストの処理時間に関する考慮事項と改善策を案内します。

kintone の性能

kintone の性能は、「同時リクエスト数」と「リクエストの処理時間」との掛け合わせで考えられます。
「同時リクエスト数」は、ユーザーアクセスによるリクエスト数と、カスタマイズによる REST API リクエスト数の合計を指しています。
「リクエストの処理時間」は 1 件ずつのリクエストの処理に要する時間で、よくあるケースとして次の要因によって処理時間が変動します。

  • レコード件数
  • 絞り込み・ソート条件
  • アプリ構成(フィールド、アクセス権など)

「同時リクエスト数」と「リクエストの処理時間」はお互いに影響し合います。

  • 同時リクエスト数が増えた場合
    同時リクエスト数が増えると kintone への負荷がかかる傾向があります。その結果、リクエストの処理時間も長くなる可能性が高くなります。
  • リクエストの処理時間が長くなった場合
    処理時間が長くなると同時に処理されるリクエストが増える可能性が高くなり、同時リクエスト数も増えやすくなります。

そのため、リクエストの処理時間を短くし、同時リクエスト数も減らす構成が理想となります。

リクエスト処理時間の考慮点

レコード件数

レコード件数が多くなるにつれ、リクエストの処理時間が長くなります。
利用者の快適さを考慮すると、レコード件数は多くても 100 万レコードが目安となります。
絞り込み・ソート条件やアプリ構成によっては数万レコードでも性能に影響が出る場合もあります。

参考:レコードの登録や閲覧に関しては、アクセス権や絞り込みを設定していない 1 つのアプリに、100 万件を登録した状態で快適に使用できることを確認しています。
kintone ヘルプ 制限値一覧 (External link)

絞り込み・ソート条件

絞り込み・ソート条件の設定数が多くなるにつれ、リクエストの処理時間が長くなります。

レコード数が多いアプリで、次に当てはまる場合は特に注意が必要です。

  • 絞り込み条件で「いずれかの条件を満たす」を利用している。
  • 絞り込み条件で「次のキーワードを含む/含まない」を利用している。
  • 文字列(複数行)、リッチエディター、テーブルを条件に利用している。
  • ドロップダウンまたはラジオボタンをソート条件に利用している。

アプリ構成

フィールド数やアクセス権の設定数が多くなるにつれ、リクエストの処理時間が長くなります。
フィールド数の上限は 500 ですが、フィールド数が 100 を超えると、レコード一覧画面や詳細画面の表示が遅くなることもあります。

次に当てはまる場合は特に注意が必要です。

  • アクセス権の設定数が多い。
  • 一覧に表示するフィールド数が多い。
  • テーブル、関連レコード一覧が多い。
  • テーブルのフィールド数や行数が多い。
  • レコード/フィールドのアクセス権で、アクセス権の対象者に多数のユーザー・組織・グループを設定している。
  • レコード/フィールドのアクセス権で、アクセス権の対象者にレコード内のフィールド値を利用している。

リクエストの処理時間の改善策

レコード件数

不要なレコードを削除できないか、利用頻度の低いレコードを CSV に書き出して保管できないか検討してください。

また、アプリの分割も有効です。分割方法の案を 2 つ紹介します。

時系列で分割

年ごと、もしくは複数年ごとにアプリを分ける。
例:2022 年度営業活動アプリ、2021 年度営業活動アプリ、2020 年度営業活動アプリ。

所属で分割

利用者の所属でアプリを分ける。
例:東京オフィス座席アプリ、大阪オフィス座席アプリ、第 1 営業部売上アプリ、第 2 営業部売上アプリ。

絞り込み・ソート条件

不要な絞り込み・ソート条件がないか確認してください。

初期表示される一覧はアクセスされる頻度が高くなります。
絞り込み・ソート条件の設定数が少ない一覧で代用できないか検討してください。

ソート条件はフィールドタイプによって処理時間が変わります。
処理時間が短いフィールドタイプに変更できないか検討してください。
詳細は次のページを確認してください。
ソート条件に適用するフィールドの種類による処理時間の違い

アプリ構成

不要なフィールドを削除できないか検討してください。

また、アクセス権の設定数を減らせないか検討してください。
アクセス権の軽量化についてはこちらを参考にしてください。
kintone SIGNPOST 最軽量のアクセス権設定 (External link)

おわりに

本記事では kintone の性能やリクエストの処理時間に関する考慮事項と改善策を案内しました。
Vol.2 では同時リクエスト数の考慮点と改善策について案内しています。
こちらも確認してください。
kintone の性能 Vol.2 - 同時リクエスト数

information

この Tips は、2022 年 9 月版 kintone で動作を確認しています。