イメージ

SQLiteのデータベースのメリットやデメリットとは?


データベースの方式に「SQLite(エスキューライト)」というものがあります。

このページではデータベースにSQLiteを採用するメリット・デメリットの解説を解説していきますが、その前段階として「データベースとは何か?」ということの簡単な解説もしていきます。

ですので、上から順番に読んでいけばSQLiteというものがどのようなものかをだいたい理解できると思います。


Wikipediaで「データベース」の解説を見ると、

データベース(英: database, DB)とは、検索や蓄積が容易にできるよう整理された情報の集まり。 通常はコンピュータによって実現されたものを指すが、紙の住所録などをデータベースと呼ぶ場合もある。コンピュータを使用したデータベース・システムでは、データベース管理用のソフトウェアであるデータベース管理システムを使用する場合も多い。
データベース – Wikipedia

ということが書かれており、「何を言ってんだ!?」となりかねません。
もっと簡単に言いますと、データベースというのは「データの保存場所」のことです。

例えばわかりやすい例として、現在多くのサイトで使われている「WordPress(ワードプレス)」は簡単に言ってしまえば「ブログのシステム」です。
これをWebサイトに組み込むことで、ブラウザ上の操作でページの追加や削除、編集などができるようになります。

その際に、書いたブログ記事(タイトルや本文など)を保存する場所が「データベース」です。
つまり、WordPressというソフト(プログラム)とデータベースは別物になります。


データベースの種類はたくさんあります。
特定の企業が開発した有料のものもあれば、無料で誰もが利用・開発できるもの(オープンソース)なものもあります。

例えば先ほどの例で挙げたWordPressはデータベースに「MySQL(マイ・エスキューエル)」や「MariaDB(マリア・ディービー」という方式を採用しています。

なぜWordPressがそれらの方式を採用しているのかと言いますと、WordPress自体がオープンソースなプログラムなので特定の企業が著作権などを持つデータベースに依存する構造は好ましくなく、そのためにオープンソースであるMySQLやMariaDBを採用していると言えるでしょう。

そして「SQLite」という方式もオープンソースなデータベースになります。
「オープンソースで無料なものだから品質が悪い」とは決して言えないことは、WordPressのクオリティや普及率を見れば明らかでしょう。

【オープンソースな有名ソフト】
これは余談になりますが、ブラウザのFirefoxやメールクライアント(ソフト)のThunderbirdもオープンソースなプログラムです。

他にも、ブラウザのChromeはGoogleの製品ですが、元々はChromiumというオープンソースなブラウザにGoogle流のアレンジを加えた製品になります。

データベースにSQLite方式を採用するメリットは以下のような点が挙げられます。(小さなメリットは省略)

  • 動作が軽い。
  • 著作権がない。
  • ファイルが1つだけなので、バックアップや復元が簡単。
  • サーバ側でデータベースを用意する必要がない。

その中でも私が個人的に最大のメリットとして感じるのは「サーバ側でデータベースを用意する必要がない」という点です。

WordPressを設置した人ならわかるかと思いますが、前述のMySQLやMariaDBはサーバ管理画面でデータベースの作成やユーザー名・パスワードの設定を事前にしておく必要があります。
しかしSQLiteならその必要がないのです。このメリットは大きい!プログラムの設置難易度が大幅に下がるからです。

また、レンタルサーバでMySQLやMariaDBのデータベースを使うためにはある一定以上の料金プランにする必要がありますが、SQLiteはそれ以下の料金プランでも使うことができたりします。

(例:さくらインターネットの月額128円のプランロリポップの月額99円のプランような安いプランはMySQLやMariaDBは使えませんが、SQLiteなら使えます)

SQLiteのデメリットとして大きなものは以下のような点が挙げられます。(小さなデメリットは省略)

  • パスワードが存在しない。
  • 複数の同時書き込みができない。

ただ、前者に関してはデータベースファイルが設置してあるディレクトリに.htaccessでアクセス制限をかけたり、ドキュメントルートより上位の階層に設置することで簡単にカバーできます。

後者のデメリットをカバーするためには、プログラム側での機能の実装が必要になると思いますのでちょっと大変かもしれません。


私のような個人が開発するような小規模のプログラムではSQLiteのデメリットを感じる機会がほとんどありませんが、WordPressぐらいの中規模~以上のプログラムになるとちょっと問題あるかもしれません。
Wikipediaのページにも以下のように書かれています。

サーバとしてではなくアプリケーションに組み込んで利用される軽量のデータベースである。 一般的なRDBMS(データベース管理システム)に比べて大規模な仕事には不向きだが、中小規模ならば速度に遜色はない。
SQLite – Wikipedia

というわけで、当サイトで配布・販売しているプログラムでは、

の4つがこのSQLiteを採用しています。
そのため、これらのプログラムでは前述した「サーバ側でデータベースを用意する必要がない」というSQLiteの大きなメリットを享受することができます。

つまり、ユーザー(使う人)側にとって設置作業が楽だったり、安いサーバでも使えるわけです。

このような感じでプログラム開発者はメリット・デメリットを考慮し、データベースを使うかどうか、また、どのデータベース形式を採用するかを選択すると良いでしょう。

提供サポートなど