Next.jsでWebアプリを作るとき、どのデータベースを選ぶか?どのサーバーで動かすか?は、アプリの性能や拡張性に大きく関わります。この記事では、MySQLとPostgreSQLの違い、Xサーバー(共用/VPS)の選び方、そしてNext.js+Prismaでおすすめの構成を初心者向けに解説します。
✅ Next.js × Prisma におけるDB選定の基本
Next.jsはReactベースのフレームワーク、PrismaはそのORM(Object Relational Mapper)です。どちらのDBにも対応していますが、構築のしやすさ・将来性を考慮して選ぶ必要があります。
項目 | MySQL | PostgreSQL |
---|---|---|
特徴 | 世界で最も使われているDB。WordPress等に多く採用。 | 高機能で厳格な構造を持つ。金融・行政・業務系で多く採用。 |
型の厳密さ | やや緩い | 非常に厳密(整合性重視) |
JSON対応 | 限定的 | ネイティブで強力なサポート |
Prisma互換性 | ◯ | ◎(開発コミュニティの推奨) |
学習コスト | やや低い(経験者多) | 中程度(構文に癖あり) |
拡張性 | 高いがやや古い設計 | 高い・将来性あり(クラウド対応も進む) |
🌍 MySQL/PostgreSQLが使われている有名サービス例
サービス名 | 使用DB | 解説・用途 |
WordPress | MySQL | 世界最大のCMS。MySQLの標準サポートにより圧倒的普及。 |
Facebook(初期) | MySQL(+独自拡張) | スケール重視でMySQLベースのカスタムDBを採用。 |
YouTube(初期) | MySQL | 動画情報やコメントなどをMySQLで管理していた。 |
Shopify | MySQL | ECプラットフォームの中枢を担うDBにMySQLを採用。 |
Netflix(旧) | PostgreSQL → Cassandra等 | 初期はPostgreSQLを使用。その後NoSQLに移行。 |
Instagram(初期) | PostgreSQL | 初期の主要データベースとしてPostgreSQLを活用。 |
PostgreSQL | 大量の投稿・スレッド処理にPostgreSQLを使用。 | |
Airbnb | PostgreSQL | トランザクションと地理情報に強いDBが決め手。 |
Lancers/ココナラ(推定) | PostgreSQL系 or MySQL | 複雑なデータ構造を必要とするためPostgreSQLの適性が高いと推定。 |
ストアカ(求人情報より) | PostgreSQL | 教育講座の予約・評価・決済など多機能管理。 |
万博2025アプリ(類似例) | PostgreSQL採用事例あり | 地理情報や統計を扱うシステムではPostgreSQLが多い。 |
※ 技術スタック判断の根拠と補足情報
上記のデータベース使用状況は、以下のような情報源や判断基準に基づいています:
- ✅ 公式技術ブログ・カンファレンス資料:開発者登壇資料での明言(例:Instagram Tech Blogなど)
- ✅ 求人・採用情報:”開発環境:PostgreSQL” 等の記載(Wantedly, Greenなど)
- ✅ StackShare.io等のスタック共有サービス:RedditやAirbnbの実使用技術が確認可能
- ✅ 技術書・ドキュメント:『大規模WebサービスのためのDB設計』等に記載
- ✅ OSSコードや構成ファイル:GitHubの.envファイル等からの確認
- ⚠️ 一部サービス(ココナラ等)は推定:公開情報がない場合は、求人記載や類似事例との比較による
🖥 Xサーバーでの選択肢
サーバー | 特徴 | Next.js対応 | PostgreSQL対応 | MySQL対応 |
共用レンタルサーバー | 安価・簡単 | ❌(SSR不可) | ❌ | ✅ |
VPS(KUSANAGI対応) | 自由度が高く商用向け | ✅ | ✅(要インストール) | ✅ |
➤ 通常レンタルサーバーの限界
共用サーバーではNode.jsが動作せず、Next.jsのSSRやAPI Routesは使用できません。 ただし、next export
を用いた静的HTML(SSG)出力ならホスティングは可能です。
➤ VPSならNext.jsもDBも自由自在
XサーバーVPSなどLinuxベースの環境であれば、Node.js・Prisma・PostgreSQLすべて利用可能。 さらにWordPressも同居できるため、旧サービスからの移行や共存にも適しています。
🌐 Next.js + Prisma のおすすめ構成(商用想定)
環境 | 内容 |
開発環境 | Next.js(TypeScript)+ Prisma + SQLite(ローカル開発) |
本番環境 | XサーバーVPS(Ubuntu)上に PostgreSQL+Node.jsサーバー構築 |
運用手法 | Docker or PM2でプロセス管理、永続運用 |
デプロイ | GitHub Actions → VPSへSSHデプロイ(初心者はSFTP手動でもOK) |
ドメイン・SSL | Xサーバー提供の無料SSL+独自ドメインで対応可 |
💡 SQLite → PostgreSQL への切替も簡単
Prismaでは .env
でDB接続先を切り替えるだけで移行できます:
# 開発環境(SQLite)
DATABASE_URL="file:./dev.db"
# 本番環境(PostgreSQL)
DATABASE_URL="postgresql://user:password@localhost:5432/dbname"
❓ よくある質問(FAQ)
- Xサーバー共用サーバーでもNext.jsは使えますか?
SSR(サーバーサイドレンダリング)は不可ですが、SSG(静的出力)なら
next export
を使ってHTMLとして公開可能です。
- PrismaとPostgreSQLの相性は本当に良いの?
Prismaの開発元もPostgreSQLを第一候補としており、型サポートや拡張性で最も安定的です。
- PostgreSQLの学習は難しい?
最初は少し癖がありますが、PrismaやGUIツール(pgAdmin等)を使えばハードルは下がります。
- 本番環境ではなぜSQLiteを使わないの?
SQLiteはシングルファイルベースで同時接続に弱く、大規模運用には向いていません。
- VPSのセットアップが不安です
Xサーバーの公式マニュアルやKUSANAGIテンプレートを活用すれば、比較的簡単に構築できます。
🔚 まとめ
- ✅ Next.js+Prismaなら、PostgreSQLが最も相性が良く拡張性も高い
- ✅ 共用レンタルサーバーでは Next.jsのSSR機能は動かない(SSGなら可)
- ✅ 商用用途なら XサーバーVPS+PostgreSQL が現実的な選択肢
- ✅ SQLite開発→PostgreSQL本番という構成がスムーズ
今後のスケーラブルなWebアプリ開発において、上記の構成は「学びやすさ」「安定性」「将来性」のバランスがとれたスタートラインです。