データベースの中身をただただ表示するだけのものを作る(データベースの違いを確認する)

SQLiteの管理ができるWebアプリがほしい。と言われまして…
工数の計算とかそもそも、こいつどんなんだったけ??となりました。
SQLiteなんてAndroid開発以外でほぼ使ったことないのでほぉ。。。と思いながら久しぶりに色々調べてみました。

SQLiteって何?

特徴

  • 軽量・シンプル
    • サーバー不要、インストール不要。
    • データは1つのファイルとして保存される。
  • ローカル環境向け
    • アプリや簡単なWebアプリ、モバイルアプリでよく使われる。
    • 同時アクセスはあまり得意じゃない(シングルユーザー or 少人数)。
  • 設定不要
    • すぐ使える、セットアップが超簡単。
  • 速度
    • 少量データなら高速。

SQLiteはファイルさえあればOK!どこかにサーバーを立てる必要なし

こんな場面で使う

  • 開発中のテスト用DB
  • 小規模なWebアプリ、ツール
  • スマホアプリ内蔵DB(Android)
  • 単体のアプリケーションで完結する場合

MySQLって何?

特徴

  • サーバークライアント型
    • MySQLサーバーが動作しており、そこに接続してデータをやり取り。
  • 複数ユーザーや大量データに強い
    • 同時アクセスが多いシステムに向いている。
    • トランザクション管理、権限設定、リモート接続など多機能。
  • 拡張性が高い
    • クラウドや大規模システム(WordPressなど)で定番。
  • 設定が必要
    • 初期設定やユーザー管理、接続情報の設定などが必要。

サーバープログラム(MySQL Server) がPCやサーバーで常に動いている必要があり

こんな場面で使う

  • 商用Webサイト(WordPressやECサイト)
  • 大規模システム
  • たくさんのユーザーが同時に使うサービス
  • 複数サーバー間でDBを共有したい場合

まとめ

SQLiteはインストール不要のDB

SQLiteは ライブラリ で提供されています(たとえば、PHP・Python・Laravelなどに組み込み済みのことが多い)。 特別なセットアップ作業が不要

たとえば

  • PHPなら PDO (PHP Data Objects)sqlite を選ぶだけでOK。
  • Pythonなら標準で sqlite3 モジュールが使える。
  • Laravelも database/database.sqlite を用意するだけで動く。
SQLiteMySQL
稼働形式組み込み型(ファイル)サーバー型(クライアント-サーバ)
セットアップほぼ不要必要(ユーザー設定・起動など)
同時接続数少人数向き大人数・多接続に対応
トランザクション対応(基本的)対応(高機能)
主な用途開発・小規模・モバイル商用・大規模・本番運用

と、まとめていると…
「ああ、こうだったなぁ」と思い出してきました。