オンプレSCMの旗手、GitLabから掲題のニュースが有りました。
2017年から公式発表があったことですが、GitLab 12.1からMySQLのサポートを止めるとのことです。
普通にインストーラを使ってインストールすると組み込みのPostgreSQLが入るので該当する方々は一握りだと思いますが、オンプレでGitLabを使っていて、MySQLでデータ保存している方々は本格的に移行準備を迫られるようです。
GitLabがMySQLサポートを止める理由
MySQLに最大限の敬意を表しつつ、以下の理由が挙がっていました。最終的にGitLabにはMySQLは合わないそうです。
- MySQLはWITH句の再帰が弱い
- カラム制限を増やす為にハックを使用しなくてはならない
- 長さを指定しないとTEXT型のカラムを追加できない
- パーシャルインデックスが使えない
- GitLab Geoで使用する位置空間情報機能が無い
- これらを解決する為のコードを書いてきたがマージコストが2倍になる
- 同様にCIのコストも2倍になる
要するにGitLabを開発する上でMySQLが重荷になっている、ということらしいです。
GitLabユーザの内、MySQLを使っているユーザが1,200だったのに対し、PostgreSQLを使っているユーザは110,000で、MySQLユーザの大半はGitLab11ユーザだった。この為12.1に移行さえしてくれればPostgreSQL一本に出来る。と判断したとのこと。
マイグレーションガイドも出してくれているので該当する方は早めに移行検証した方が良さそうです。
このニュースを見て思ったこと
2019/07現在のRDBMS、NoSQL問わないDBのシェア、というか関心度(?)はこんな感じだそうで、トップ3がぶっちぎってます。
1. | Oracle | Relational, Multi-model | 1321.26 |
---|---|---|---|
2. | MySQL | Relational, Multi-model | 1229.52 |
3. | Microsoft SQL Server | Relational, Multi-model | 1090.83 |
4. | PostgreSQL | Relational, Multi-model | 483.28 |
5. | MongoDB | Document | 409.93 |
何か違う点を挙げるなら、保守態勢の違いでしょうか。日本でもお高いお金を支払ってこれらのRDBMSを使うことが一般的になっています。(MySQLは入門者の多さがコンバージョンを下支えしている印象を持ってます)
でも折角お金を払ってサポート依頼しても大概ビジネスロジックのせいにされますし(まぁ大体当たりなんですが)、サポートが役に立つほどハマるのは希少パターンで、結局自分達で切り抜けるケースが99.9%な気が自分の感覚ではしています。
それでもユーザ企業はこれらのRDBMSに保守料金を払い、その分開発人件費は圧迫されるんですよね・・・それが必要かどうかの判断もしないまま。
もしそのお金でベテランを雇えていたら・・・開発が楽になったり、知識共有出来たり、若手の教育に一役かってくれたり、今後もお付き合いしたいと思える人脈が出来たり、自分も早く帰って寝れたり、とか欲深いことを考えるとトップ3を選ぶ企業はどこか思考が停止してるんじゃないか、とか思い始めてしまいます。
最近では公共事業でも保守料金の高さが原因でOracleからOSS DBへマイグレする話を結構聞き及ぶようになりましたし、このニュースがDB(製品)保守以外の本質的な部分に投資しようと思う企業が増える要因の一つになればと思っています。