onemuri.space

100 万レコードを超える DB で遊んでみる

Docker ファイルで MySQL8 の環境を用意しています

早速ですが、100 万レコードを超えるデータを作成するためのサンプル用の Docker ファイルを作成しておきましたので、ぜひ使ってみてください。

https://github.com/mergitto/doker-dummydata-sample

README を参考にデータを作ってみてください

100 万超えのレコードを作ることができる sql をつけているので、楽しめると思います

やってみたら面白そうなこと

  • index 効く効かない?
  • order by つけたらどうなる?
  • サブクエリ使ってみる

チューニングが必要になる例

  1. type=ALL or type=index で rows が大きい
  2. Extra に Using temporary; Using filesort で rows が大きい
  3. select_type が DEPENDENT SUBQUERY
  4. JOIN における 2 つ目以降の Extra に Using where が出力されていて rows が大きい
  5. 大量更新・データ削除

まとめ

今回は詳しくは説明しませんが、上記のことを手元の環境で試してみると良さそうです。詳しい解説はまた別の機会でやります

自己紹介用画像

Riki Akagi

2019年からDeNAで働いています。GCP(CloudSQL・GAE・Cloud Function etc)とGoでAPI開発に勤んでいます。睡眠やエンジニアリングに関することに興味を持って過ごしているのでその情報を皆さんに共有していけたらなと思っています。

自己紹介の詳細