kintoneの中⾝のはなし
▌永続化にはRDBMS (MySQL) を使っている
l1アプリ=1table ではない
l 固定のtableに⾊々な形のアプリがマッピングされる
l 複雑なクエリが多く発⾏される場合が…
l 複雑な条件での絞込
l パフォーマンスが…
▌詳しくは「kintoneの検索⾼速化への取り組み」を参照
l https://www.slideshare.net/RyoMitoma/kintone-73674134
9
どうしたものか
▌ クエリ⾃体を改善する
l 当然必要
lkintoneの性質上、遅いクエリはどうしても発⽣し得る
l 起きちゃった場合の対応をしないといけない
▌ クエリのタイムアウト
l MySQL 5.7ではSELECTのタイムアウトが出来る
l 当時使ってたのは5.6…
l kintoneではそこそこ遅いクエリが多く⾛る
l 使えない
▌ 遅すぎるリクエストのみを強制的に終了させたい
l JavaのServlet上で動いているのでkillとか出来ない
11
コードの例
▌S2DaoやSpring Data JPAと⼤体同じように書ける
23
@Table(name= “user”)
class User {
@Id
@GeneratedValue
public Long id;
@Column(“login_name”)
public String loginName;
}
@Repository
public interface UserRepository extends
JdbcTemplateRepository<User> {
@Query(“SELECT * FROM user WHERE id=:id”)
List<User> getById(@Param(“id”) Long id);
}