【SQL】MySQL・PostgreSQL・SQLite・MongoDB、DBMSの選び方

SQL

こんにちは、かつコーチです。

「データベースを学ぼう」と決めても、次に立ちはだかるのが「どのDBMSを使えばいいの?」という選択です。
MySQL、PostgreSQL、SQLite、MongoDBなど、名前をよく聞くDBMSはいくつもあります。

私自身、初めてポートフォリオを作ったとき、どれを選べばいいのか分からず1日調べ物に費やしてしまった経験があります。
この記事では、代表的な4つのDBMSの違いと、目的別の選び方を整理します。

代表的なDBMSの特徴

MySQL

MySQLは、世界で最も広く使われてきたオープンソースのRDBMSです。
WordPressをはじめ多くのCMS・Webサービスで採用されており、情報量・学習リソースの豊富さが強みです。

  • 動作が軽く、Web系サービスとの相性が良い
  • レンタルサーバーでも標準的にサポートされていることが多い
  • Laravel、Rails、Djangoなど主要フレームワークとの連携実績が豊富

PostgreSQL

PostgreSQLは、機能の豊富さと標準SQLへの準拠度の高さで評価されているオープンソースRDBMSです。
私が調べた市場データでは、2026年時点で新規プロジェクトの採用率が55.6%とMySQLを上回っており、2023年頃に採用率が逆転したとされています(rstone調べ)。

  • 複雑な集計・分析処理に強い
  • JSON型やウィンドウ関数など高度な機能が豊富
  • 生成AI開発で使われるpgvector(ベクトル検索の拡張機能)に対応しており、AI関連プロジェクトでの採用が増えている

SQLite

SQLiteは、サーバーを立てずにアプリ内にデータベースファイルを1つ持つ形で動く軽量DBMSです。

  • インストール・サーバー起動が不要で、学習用に最も手軽
  • スマホアプリ(iOS/Android)や小規模なデスクトップアプリに組み込まれることが多い
  • 大規模な同時アクセスには不向き

MongoDB

MongoDBは、RDBMSとは異なるNoSQLに分類されるDBMSです。
テーブルではなく「ドキュメント」という柔軟な形式でデータを保存します。

  • スキーマ(テーブル構造)を厳密に決めずに開発を進められる
  • ログデータやSNSの投稿データなど、構造が変化しやすいデータの扱いが得意
  • テーブル同士を厳密に関連づけるような処理はRDBMSほど得意ではない

目的別の選び方

学習目的なら

初めてSQLを学ぶなら、MySQLかSQLiteがおすすめです。
情報量が多く、つまずいたときに解決策を検索しやすいのがMySQLの強みです。
「とにかく手軽に試したい」という場合は、インストール不要のSQLiteから始めるのも良い選択です。

このSQL基礎編では、ローカル環境にMySQLをインストールして手を動かす前提で解説していきます。

実務・案件で使うなら

案件で使うDBMSは、フレームワークやインフラの都合で決まることがほとんどです。
ただし、新規プロジェクトでゼロから選べる場合は、以下の判断軸が参考になります。

判断軸選び方の目安
CMSやシンプルなWebサービスMySQL(実績・情報量が豊富)
複雑な集計・分析やAI関連機能を含むPostgreSQL(機能の豊富さ、pgvector対応)
スマホアプリ・小規模なローカルアプリSQLite(軽量・組み込みやすい)
データ構造が頻繁に変わる/非構造データが多いMongoDB(柔軟なスキーマ)

判断に迷ったら

「とりあえずRDBMSで作りたいが、MySQLかPostgreSQLか迷う」という場合は、PostgreSQLを選んでおくのも1つの手です。
標準SQLへの準拠度が高く、将来的に他のRDBMSへ移行する際の学び直しコストが少ない傾向があります。
とはいえ、この基礎編で学ぶSQLの文法自体はどのDBMSでもほぼ共通するため、どちらを選んでも学習の土台としては問題ありません。

まとめ

この記事のポイント

  • MySQLは情報量・実績豊富な定番RDBMS、PostgreSQLは機能豊富で採用率が伸びているRDBMS
  • SQLiteはサーバー不要で学習・組み込み向き、MongoDBはNoSQLで柔軟なデータ構造が得意
  • 学習用にはMySQLかSQLiteがおすすめ。実務では要件に応じてMySQL・PostgreSQLを使い分ける
  • SQL基礎編ではMySQLをベースに、どのDBMSにも通用する共通文法を扱っていく

次に読むべき記事

  • SQLとは?データベース操作言語の基本を理解する
  • SELECT文の基本:データを取得する

タグ: SQL, 初心者向け, 比較検証

タイトルとURLをコピーしました