Skip to content

SeekQueryLab; SQLは、データの操作と取得における強力な学習ツールです。SeekQueryLabでは、SQLのクエリングに没頭し、スキルを探求・習得・最適化する旅に出ます。初心者から経験豊富な開発者まで、実験的な学習環境を提供し、一緒にSQLの深みを探求しましょう。

License

mconfjp/SeekQueryLab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

これはなに

SeekQueryLab: SQLは、クエリチューニングの強力な学習ツールです。SeekQueryLabでは、SQLのクエリングに没頭し、スキルを探求・習得・最適化する旅に出ます。初心者から経験豊富な開発者まで、実験的な学習環境を提供し、一緒にSQLの深みを探求しましょう。(翻訳調だなあ)

できること

  • できる
    • EXPLAINで実行計画を見て、クエリをチューニングする
  • できない
    • いちからSQLの書き方を学ぶ
    • (DB以外のレイヤーを含んだ)総合的なWebパフォーマンスチューニング

なお、クエリチューニングの概要や実行計画の読み方についての記事を書いたので、よければ参考にしてみてください。

使い方

環境構築方法

  • リポジトリをローカルの適当な場所にクローンする
    • git clone https://github.com/mconfjp/SeekQueryLab.git
  • 初期化スクリプト実行
    • sh init_copy.sh
  • docker起動
    • docker compose up --build
    • 50万行くらい作ってるので重たいです。5分とかかかる(insertをチューニングしたい)
  • MySQLにログインして動かしてみる
    • .envにユーザー情報あります

サンプルシステム概要・テーブル構成・機能一覧

小説投稿サイトのシステムを想定しています。ユーザー数は3万人、投稿作品数は3万作品としました。ここらへんの数字は大きすぎるとセットアップに時間がかかってしまうので適当な規模にしています。

小さいですがテーブルのER図はこんな感じ。

機能は色々あると思いますが、今回クエリチューニングの対象として重ための処理をいくつか用意しています。例えばトレンド作品やランキングとかは割と集計が重たくなるため、チューニングのしがいがありますね。

リポジトリの権利関係

もりたの趣味リポジトリなので、どんな組織・個人が使っても問題ありません。ただ、使ってみたよとか一言もらえるともりたがメンテを頑張るのでお互いwin-winだと思います。

何か不具合とか要望があればGithubのissueを立ててください。それなりの感じで対応します。

その他メモ

About

SeekQueryLab; SQLは、データの操作と取得における強力な学習ツールです。SeekQueryLabでは、SQLのクエリングに没頭し、スキルを探求・習得・最適化する旅に出ます。初心者から経験豊富な開発者まで、実験的な学習環境を提供し、一緒にSQLの深みを探求しましょう。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages