SQLite / PostgreSQL / MySQL の違い
この章でわかること: データベースには SQLite / PostgreSQL / MySQL といった 「種類」がある。それぞれの個性(手軽さ・堅牢さ・型の厳しさ)を知っておくと、 「どれを使う?」で迷わず、AIにも意図を持って頼めるようになります。
まず共通点 ——「表でデータを保存する」道具
Section titled “まず共通点 ——「表でデータを保存する」道具”3つとも役割は同じで、データベース(DB)、なかでも リレーショナルデータベースと呼ばれる仲間です。 データベース / API / 認証で触れたように、DBは 整理された保管庫。Excelのように「表(テーブル)」でデータを持ち、 SQL という共通の言葉で読み書きします。しかも1枚の表で完結させるのではなく、 複数の表を共通の目印(キー)で関連づけ、必要なときに突き合わせて取り出す(この 突き合わせを 結合 / JOIN と呼びます)——ここが「リレーショナル」の本質です。 BIツールで「マスタと明細を結合する」のと同じ発想だ、と考えると腑に落ちます。
つまり3つは「別のジャンルの道具」ではなく、同じ用途の、味付けの違う3ブランド。 どれを選んでも「表にデータを保存して取り出す」という基本は変わりません。 違うのは、手軽さ・厳格さ・運用のスケールといった性格です。
SQLite ——ファイル1個で完結する手軽さ
Section titled “SQLite ——ファイル1個で完結する手軽さ”SQLite の最大の特徴は、データベースがファイル1個で済むことです。
サーバーを起動する必要も、別途インストールする必要もありません。
アプリの中に埋め込まれ、data.db のような1ファイルにすべてが入ります。
起動が一瞬で、まっさらな状態からやり直すのも簡単。プロトタイプ向きの性格です。
一方で、知っておきたい「癖」もあります。SQLite は型がゆるいのです。
なお最近の SQLite には、型を厳格にする STRICT テーブルという機能もあり、 「ゆるさ」を締めることもできます。とはいえ既定はゆるめ、と覚えておけば十分です。
このチュートリアルで扱う Cloudflare D1 は中身が SQLite 互換なので、 ローカル開発でも SQLite がそのまま使えます。詳しくは ローカル開発環境の作り方へ。
PostgreSQL ——型と整合性に厳格な、本格運用の定番
Section titled “PostgreSQL ——型と整合性に厳格な、本格運用の定番”PostgreSQL(ポスグレ)は、堅牢さと高機能で選ばれるDBです。 SQLite とは逆に型や整合性に厳格で、「数値の列には数値しか入れさせない」 「この列は空にできない」といった**ルール(制約)**をきっちり守らせられます。 データが増えても崩れにくく、本格運用の定番として広く支持されています。
平易に言えば、PostgreSQL を選ぶメリットは次のようなものです。
- 型に厳格 ——おかしなデータが入るのを、DB側で未然に防いでくれる
- 制約が豊富 ——「必須」「重複禁止」などのルールを表に組み込める
- JSON も扱える ——表の形に収まらない柔軟なデータも、そのまま保存・検索できる
- 拡張が豊富 ——位置情報や全文検索など、後から機能を足せる懐の深さ
MySQL ——世界中で使われてきた定番
Section titled “MySQL ——世界中で使われてきた定番”MySQL も、長年世界中のWebサービスで使われてきた定番のDBです。 サーバーを立てて運用するタイプで、情報や事例が豊富。レンタルサーバーでも標準的に 使えることが多い——「枯れていて安心な選択肢」という位置づけです。
型の扱いには歴史的な経緯があります。MySQL はもともと型に寛容(範囲外の値を 黙って丸める等)でしたが、**近年のバージョンは既定で厳格(STRICTモード)**になりました。 「昔はゆるかったが今は厳しめ」と覚えておけば十分です。厳格さの度合いでいうと、 おおむね SQLite(ゆるい) < MySQL < PostgreSQL(厳格) のイメージです。 迷ったとき、PostgreSQL とどちらでも大きく外すことはありません。
選び方の目安
Section titled “選び方の目安”| 重視すること | 向いているDB | ひとこと |
|---|---|---|
| とにかく手軽に試したい | SQLite | ファイル1個。プロト・お試しに最適 |
| 本格・堅牢に育てたい | PostgreSQL | 型/制約に厳格。高機能で拡張も豊富 |
| 実績ある定番で安心したい | MySQL | 情報が多く、対応環境も広い |
DBの「種類」は、手軽さと堅牢さのどちらを取るかという最初の分かれ道です。 SQLite の型のゆるさを知らずに本番まで進むと、あとで気づきにくいデータの乱れに 悩まされることがあります。逆に「お試しなのに最初から重厚に」してしまうと、 準備で疲れてしまいます。目的に合わせて選ぶ——この地図を持っていれば、 自分で決めるときも、AIに頼むときも、最初から噛み合った選択ができます。
参考リンク(情報ソース)
Section titled “参考リンク(情報ソース)”- SQLite 公式(データ型 / 型親和性): https://www.sqlite.org/datatype3.html
- SQLite 公式(STRICT テーブル): https://www.sqlite.org/stricttables.html
- PostgreSQL 公式ドキュメント: https://www.postgresql.org/docs/
- MySQL 公式ドキュメント: https://dev.mysql.com/doc/