公開日:2025-04-15
こんにちは、システム開発グループの田邊です。
最近担当させて頂いたプロジェクトで嬉しい事がありました。
プロジェクトの目的は以下の2点であり元々性能の改善が目的ではありませんでした。
- 業務アプリをゲストスペースから通常スペースに移行する事
- プラグインとJavaScriptの機能をカスタマインのカスタマイズで置き換える事
ところが、通常スペースに移行してカスタマインに置き換えた後に、性能が改善したそうなんです!
例えば、一覧の”(すべて)”でレコード一覧を表示させるのに以前は10分近くかかっていたそうです。
それが今では2、3秒ほどで開けるようになったそうなのです。
(一番顕著な個所がここで、他の動作も改善しているとのことでした)
何が原因だったのか私は調べてみる事にしました。
kintoneの性能って?
まず本記事での性能について軽く定義しておきます。
皆さんが、kintoneのアプリのレコード一覧やレコード詳細画面を開いたり、
レコードを更新する場合の応答速度と考えておいて頂ければOKです。
PCのスペックや回線速度、他のユーザーのアプリの利用頻度によっても多少違いは出ますが、
これらはそれなりのものと考えてくださいね。
レコード数はどれくらいだったのか
kintoneのアプリは絞り込みやアクセス権の設定がない条件で、
100万レコードくらいなら快適に利用できると言われています。
いったい何百万件のレコードだったんだ、と思いますよね。
件数を聞いた時驚いたのですが、5000件程度でした。
(もちろん、移行元と移行先のアプリのレコード件数は同じですよ)
どんなアプリだったの?
アプリはフィールド数が500個近くある規模が大きい業務アプリです。
フィールド数が多いという事は情報量も多いという事です。
そのため、性能において問題が起きるリスクは孕んでいました。
そもそもゲストスペースにはどんな特徴があるのか
ゲストスペースには通常スペースにはない特徴があります。
その一つに組織とグループが扱えない事があります。
これは利用者がゲストユーザーに関わらずそうなります。
ゲストスペースでは以下のように組織やグループ自体が制御できなくなるのです!
通常スペースのユーザ選択時の表示

ゲストスペースのユーザ選択時の表示

つまり、ゲストスペースでは全てユーザ単位で制御する必要があります。
そのため、ゲストスペースを利用するユーザーが増えれば増えるほどアクセス権の設定数が多くなりがちです。
アプリやレコードのアクセス権でユーザ単位で設定するのも大変ですが、
フィールドのアクセス権で、さらにフィールド単位に個別に設定をすることを考えてみてください。
ユーザ数との掛け算で増えていくのでゾッとしますね・・
性能が改善した理由
通常スペースに移行して性能が改善した理由について
私はまずフィールドのアクセス権の設定数が減ったのが大きいと考えました。
実際に、サイボウズさんが業務改善の道しるべとして公開されている
kintone SIGNPOSTの性能上の考慮点と改善策でも
アクセス権の設定の数についての注意が記載されています。
特に、以下に当てはまる場合は注意が必要です。
- アクセス権の設定数が多い
- レコード/フィールドのアクセス権で、アクセス権の対象者に多数のユーザー・組織・グループを設定している
- レコード/フィールドのアクセス権で、アクセス権の対象者にレコード内のフィールド値を利用している
今回の事例では組織での設定が可能になり、
移行後にフィールドのアクセス権の設定数がグッと減りました。
具体的には、ユーザ数×フィールド数で換算した合計設定数が、なんと50分の1に減ったのです。
検証してみました
とはいえ、本当にアクセス権の影響なのか、という疑問を持たれた方がいるかもしれませんね。
今回の事例ではプラグインとJavaScriptを弊社カスタマインのカスタマイズで置き換える作業も行っています。
そこであくまで参考程度ですが、ゲストスペース上でアクセス権の設定の違いの検証をしてみる事にしました。
そのためにゲストスペース上の比較・検証用のアプリを使いました。
移行後に動作が変わっていない事を確認するためのものなので、基本的に旧環境で動いていたものと同じです。
ここにテストデータを登録して確認してみました。アプリの条件は以下の通りです。
- レコード数、テストデータの情報量はほぼ旧アプリとほぼ同じ
- プラグイン、JavaScriptの設定も同じ
- フィールドのアクセス権はeveryoneのみ←フィールドのアクセス権は1個のみ!
この条件で、”(すべて)”で一覧を開くと10秒ほどで開けました!
もし、アクセス権の影響が軽微なら10分近くかかってもおかしくないはずです。
プラグインを削除した効果もあった
検証結果を見て疑問を持たれた方もいるかもしれませんね。
「通常スペースで2、3秒で表示できるのになぜ10秒もかかるのか」
私も謎だったので調べてみたところ、一覧で使用していたあるプラグインが原因だとわかりました。
このプラグインを無効にしたところ、2、3秒で表示できるようになりました。
つまり、今回の事例ではこのプラグインとアクセス権の相乗効果で著しい性能の問題が起きていた、という事です。
ゲストスペース脱却の注意点
ただし、ゲストスペースを脱却される場合は、
セキュリティ上のリスクにご注意ください。
通常スペースでは社内の情報が洩れるリスクがどうしてもあります。
公開部分と非公開部分を手動で設定するためです。
設定を間違えると社外秘の情報も公開されるリスクがあります。
それに比べると、ゲストスペースではゲストスペース外の情報は見えないので安心です。(※)
(※)基本機能で実現できない特殊なカスタマイズをしている場合は除きます。
後日談
記事はここまでの予定だったのですが、
このネタを本事例のお客様に共有したところ、
旧アプリのプラグイン無効化で速度が改善したと、喜びの声を頂きました。
(実はまだ旧アプリも使用されています)
具体的には”(すべて)”の一覧表示に10分近くかかっていたのが9秒ぐらいになったそうです。
さきほどまでの検証では大半がアクセス権のほうに原因がありそうな印象を
持たれた方もいるかもしれません。
実際は、どちらが悪いというよりは両方の相乗効果で著しい性能低下が起きた、という見方が正しそうです。
まとめ
いかがでしたでしょうか?
今回の性能低下の原因はアクセス権とプラグインの設定によるものでした。
kintoneの性能と言えば、レコード数やフィールド数に注目しがちではないでしょうか(私もそうでした)
原因不明の性能低下に悩まれている場合は、
プラグインやアクセス権を見直してみると何か見つかるかもしれません。
他にも以下のような要因も見落としがちなので、ご参考にください。
・JavaScriptや外部連携サービスによる処理の負荷
弊社のSIサービス「キミノマホロ」では今回の事例のようなアプリの再構築に関するご支援も対応可能です。
お困りの場合は一度問い合わせ頂ければと思います。
投稿者プロフィール

-
システム開発グループのエンジニアです。
kintoneを扱った案件をメインに
上流工程から下流工程まで幅広くやらせて頂いてます。
最新の投稿
kintone2025年4月15日ゲストスペース脱却で性能が改善した理由
kintone2025年1月28日kintoneへのデータ移行前に準備したほうがいいこと7選
kintone2020年9月7日プロセス管理に力を入れたアプリで起きた事