3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SQL Collection by Workatoのindex速度検証をしました~検索編~

Last updated at Posted at 2024-12-07

背景

株式会社出前館で情シスとして働いています、二宮と申します。
Workatoを使い始めたばかりで試行錯誤しています。

公式のドキュメントには日々助けられていますが、一方でドキュメントに書かれていない細かい仕様が気になることもしばしば…
今回はindexについて検証してみようと思います。

SQL Collection by Workato

SQL Collection by Workato ではindexの指定ができます。
image.png

indexがあるとパフォーマンスが向上すると注釈がついています。どれくらい向上するのか気になるところです。

Workatoの内部DBはSQLiteだそうですが、SQLiteのドキュメント SQLite のパフォーマンスに関するベスト プラクティス を見ても、速度や件数についての具体的な情報はありません。
ケースバイケースすぎて書けないものと思います。

では、試してみます。

テストデータについて

データランダム生成のツールを使いました。
https://tm-webtools.com/Tools/TestData

テストツールで設定した内容はこちら。
image.png

件数は SQL Collection by Workato の最大件数である5万件です。
公式ドキュメントで上限件数の記載を見つけられなかったため、Create List画面の注釈を情報源としています。

Creates a table like structure in a collection. Select list pill as source. Collections support a maximum of 50,000 list entries or 10 MB size limit.

image.png

処理内容について

ツールで作成したCSVファイルをGoofleドライブに配置し、Workatoから読み込むことにします。
image.png

読み込んだテストデータに対して以下2種類の処理を実施することとしました。

  • 処理1 任意のNoを指定してユーザーを取得する
  • 処理2 性別でグルーピングして人数をカウントする

indexあり・なしそれぞれで経過時間を計測します。
indexありの場合はPrimary indexNoSecondary index性別とします。
それぞれプライマリキーとビットマップインデックスのイメージで、実際のDB設計でもよくあるパターンだと思います。

レシピ

レシピはこのようになりました。
image.png

Step11のログ出力で結果時間が分かるようにしてあります。
image.png

結果

ばらつきがあるかもしれないので、3回ずつ試しました。

処理1 ユーザー取得 処理2 性別カウント
インデックスなし 1回目 0.028542726秒 0.038733526秒
2回目 0.02299516秒 0.048323399秒
3回目 0.028468306秒 0.045365163秒
インデックスあり 1回目 0.013266355秒 0.024370533秒
2回目 0.016906614秒 0.03071054秒
3回目 0.016027537秒 0.027085606秒

速くなっていますね。処理時間が半分以下になっているケースもありますが…
もともとが速いので、速度向上を人間が体感することはなさそうです。

今回分からなかったこと

  • indexを設定した状態での追加・更新・削除はどれくらい遅くなるのか。
    →機会があれば試してみようと思います。
  • Workatoで「任意の範囲のランダムな整数」を返す方法。
    →分からなかったのでPythonで書いてしまいました。(Step5)

最後に…
出前館では、一緒にWorkatoを推進していくコーポレートエンジニアを募集中です!
カジュアル面談もできますので、ご興味があればお気軽にお声がけください。

株式会社出前館 採用情報 > コーポレートエンジニア
https://hrmos.co/pages/demaecan/jobs/1938469226560745501


以上です。お読みいただき、ありがとうございました!

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?