みなさん、DBと聞くと何が思いつきますか?
- MySQL
- PostgreSQL
- SQLite
僕がパッと思いつくのはこれくらいです・・
普段何気なく使ってると思うのですが(自分だけ)、違いって気にしたことありますか?
最近Udemyで勉強していたら、「SQLite/PostgreSQLでテーブル定義〜」と、
そんなに使い分け必要なん? MySQLでいいんじゃないの?って思ったり思わなかったり。
なのでそれをざっくり調べたのでまとめようかと
PostgreSQL/MySQL/SQLite 違い
-
PostgreSQL
- 市場シェア
- 4位(古いかも)
- メリット
- 標準SQLに沿った実装なので、独自の書き方が少ない
- 大量のデータを捌くには処理が早い
- 多機能(有償DBがもつ機能を搭載)
- トランザクション
- サブクエリ
- トリガ
- 関数
- GISデータ(地理情報システム)を格納可能
- テーブル結合のアルゴリズムの数がMySQLより多く、結合によって最適アルゴリズムを切り替える
- 堅牢性が高い
- MySQLには暗黙的に実施される型変換や、文字列比較の厳格さがゆるい
- 例)
- 日付型の「2019-09-01」から数字の「1」を引くと、「20190900」という整数が返える
- MySQLには暗黙的に実施される型変換や、文字列比較の厳格さがゆるい
- 市場シェア
-
MySQL
- 市場シェア
- 2位
- マルチスレッド対応
- 一気に複数のプロセスを流せる?
- PosgreSQLと似てる
- 大量のデータでも、SELECTで数十件単位だとMySQLが早い
- UPDATEは直接上書きし早い(PosgreSQLだとINSERTに近い動きをする)
- 市場シェア
-
SQLite
- ソフトウェアに内蔵される組み込み形式
- MySQLやPostgreSQLはサーバー処理を行い、クライアントと接続処理が必要
- コンパクト
- 本体サイズが600kb且つ、消費メモリも少ない
- 処理が高速
- ソフトウェアに内蔵される組み込み形式