はじめに
本シリーズではkintoneの特性を知り、kintoneを快適に利用するための考慮事項と改善策を案内します。
kintoneは大企業や自治体の情報システム基盤として採用されることが増えています。
数千ユーザーの利用実績も増え、一般的な業務システムやコミュニケーション用途で性能問題が発生することはほとんどありません。
しかし、同時リクエスト数が多い場合や、アプリ設定が複雑な場合は、その限りではありません。
kintoneで性能問題を引き起こさないために、設計者やエンジニアが知っておくべきことを2つの記事にまとめました。
本記事ではVol.1として、kintoneの性能やリクエストの処理時間に関する考慮事項と改善策を案内します。
kintoneの性能
kintoneの性能は、「同時リクエスト数」と「リクエストの処理時間」との掛け合わせで考えられます。
「同時リクエスト数」は、ユーザーアクセスによるリクエスト数と、カスタマイズによるREST APIリクエスト数の合計を指しています。
「リクエストの処理時間」は1件ずつのリクエストの処理に要する時間で、よくあるケースとして次の要因によって処理時間が変動します。
- レコード件数
- 絞り込み・ソート条件
- アプリ構成(フィールド、アクセス権など)
「同時リクエスト数」と「リクエストの処理時間」はお互いに影響し合います。
- 同時リクエスト数が増えた場合
同時リクエスト数が増えるとkintoneへの負荷がかかる傾向があります。その結果、リクエストの処理時間も長くなる可能性が高くなります。 - リクエストの処理時間が長くなった場合
処理時間が長くなると同時に処理されるリクエストが増える可能性が高くなり、同時リクエスト数も増えやすくなります。
そのため、リクエストの処理時間を短くし、同時リクエスト数も減らす構成が理想となります。
リクエスト処理時間の考慮点
レコード件数
レコード件数が多くなるにつれ、リクエストの処理時間が長くなります。
利用者の快適さを考慮すると、レコード件数は多くても100万レコードが目安となります。
絞り込み・ソート条件やアプリ構成によっては数万レコードでも性能に影響が出る場合もあります。
参考:レコードの登録や閲覧に関しては、アクセス権や絞り込みを設定していない1つのアプリに、100万件を登録した状態で快適に使用できることを確認しています。
kintoneヘルプ 制限値一覧
絞り込み・ソート条件
絞り込み・ソート条件の設定数が多くなるにつれ、リクエストの処理時間が長くなります。
レコード数が多いアプリで、次に当てはまる場合は特に注意が必要です。
- 絞り込み条件で「いずれかの条件を満たす」を利用している。
- 絞り込み条件で「次のキーワードを含む/含まない」を利用している。
- 文字列(複数行)、リッチエディター、テーブルを条件に利用している。
- ドロップダウンまたはラジオボタンをソート条件に利用している。
アプリ構成
フィールド数やアクセス権の設定数が多くなるにつれ、リクエストの処理時間が長くなります。
フィールド数の上限は500ですが、フィールド数が100を超えると、レコード一覧画面や詳細画面の表示が遅くなることもあります。
次に当てはまる場合は特に注意が必要です。
- アクセス権の設定数が多い。
- 一覧に表示するフィールド数が多い。
- テーブル、関連レコード一覧が多い。
- テーブルのフィールド数や行数が多い。
- レコード/フィールドのアクセス権で、アクセス権の対象者に多数のユーザー・組織・グループを設定している。
- レコード/フィールドのアクセス権で、アクセス権の対象者にレコード内のフィールド値を利用している。
リクエストの処理時間の改善策
レコード件数
不要なレコードを削除できないか、利用頻度の低いレコードをCSVに書き出して保管できないか検討してください。
また、アプリの分割も有効です。分割方法の案を2つ紹介します。
時系列で分割
年ごと、もしくは複数年ごとにアプリを分ける。
例:2022年度営業活動アプリ、2021年度営業活動アプリ、2020年度営業活動アプリ。
所属で分割
利用者の所属でアプリを分ける。
例:東京オフィス座席アプリ、大阪オフィス座席アプリ、第1営業部売上アプリ、第2営業部売上アプリ。
絞り込み・ソート条件
不要な絞り込み・ソート条件がないか確認してください。
初期表示される一覧はアクセスされる頻度が高くなります。
絞り込み・ソート条件の設定数が少ない一覧で代用できないか検討してください。
ソート条件はフィールドタイプによって処理時間が変わります。
処理時間が短いフィールドタイプに変更できないか検討してください。
詳細は次のページを確認してください。
ソート条件に適用するフィールドの種類による処理時間の違い
アプリ構成
不要なフィールドを削除できないか検討してください。
また、アクセス権の設定数を減らせないか検討してください。
アクセス権の軽量化についてはこちらを参考にしてください。
kintone SIGNPOST最軽量のアクセス権設定
おわりに
本記事ではkintoneの性能やリクエストの処理時間に関する考慮事項と改善策を案内しました。
Vol.2ではkintone REST APIの同時リクエスト数の上限による制限とリクエスト数を減らすためのポイントを紹介します。
kintoneの性能Vol.2 - 同時リクエスト数(kintone REST APIの上限値)
このTipsは、2022年9月版kintoneで動作を確認しています。