📚

TiDBのローカル環境構築について考えた件

2024/07/24に公開

結論tiup-playgroundが良いのでは?

https://docs.pingcap.com/ja/tidb/stable/tiup-playground

重いかもしれないが、お手軽そうではある。

Docker環境もあるが。。。

https://github.com/pingcap/tidb-docker-compose

一応、docker環境もあるが数年前から更新が無いので微妙かも(一応動いたが。。。)

MySQL互換だしLocal環境はMySQL使えば良いのでは?

一理あるしお手軽だとも思うが、個人的には本番とLocalを出来るだけ合わせるスタイルを取った方がいいと思う。

TiDBは、「HTAP」(Hybrid Transaction Analytical Processing) を実現している。

HTAPは、行指向と列指向の両方のノードを使って達成しているが、その振り分けがうまくいくのか?とかはMySQLでは確認できない。
(TiDBのその他の機能も確認できない。)
(そもそも、複数Node使っている時点でMySQLではなく、MySQL Cluster使うほうが良い気もする)

あと、MongoDBをやっていた時もそうだったが、複数Node使うデータベースの場合、データベースをシングルで使っている時と、結構勝手が違う。

例えば、各NodeにアクセスするとそのNodeのデータが見えるだけで、DB全体のデータが見れるわけではないので、全データみたい場合はNode全体にアクセスできるポイントからアクセスする必要があるとか。
(当たり前と思われるかもしれないが、意外と分かっていないメンバーが居たりする。)

まとめ

本番とLocalで、クラウド使ってたりとか、Node数が全然違うとかあるけど、可能な限り本番と同じものが使えるなら、それに越したことはないと思う。

本番だけ再現するバグとかで追い詰められたことがある人なら、Localで再現できることのありがたみがわかってもらえると思う。

また、色々と設定いじってみたりとか、機能を試す場合もLocalでやれると何かと便利かと。

Discussion