• Skip to main content
  • Skip to primary sidebar
  • ホーム
  • お問い合わせ

ハイパー仕事し隊

思い立った吉日!イロイロ試してオンリーワンの起業家を目指してます!

現在の場所:ホーム / ウェブアプリ関連 / MySQL と PostgreSQL の違いを知る

MySQL と PostgreSQL の違いを知る

2018年7月14日

下記サイトにベテラン MySQL と PostgreSQL について喋っていました。

  • 参照: PostgreSQLとMySQL、使うならどっち? データベース専門家が8つの視点で徹底比較!

記事が大変有益だったので、今後の参照用として表にてまとめました。

まとめ

項目 MySQL PostgreSQL
一言で シンプルなWebサービスに向いている 多機能である
向いている利用用途
  • 一定数の結果セットを取ってきて、そのデータを表示
  • 例: Twitter のように、タイムラインの先頭部分を表示して、下にスクロールすると次のデータを読みこむようなサービス
  • Oracle Database からの移行
  • SIer 系での利用
  • 分析系のシステム
DDL 操作のノンブロッキング
  • 多くの DDL 操作をノンブロッキングで実行できる (ver. 5.6+)
  • 対象のカラムのみをスキャンするような ALTER TABLE の場合、テーブルをゼロからリビルドしないため処理速度が速い
  • カラムを追加するなどテーブルを書き換える操作は、テーブルへのブロックが発生し、参照もできなくなる
  • (pg_repackというメンテナンス用の外部ツールで最小限のロックが実行できる)
SELECT のパフォーマンス
  • 上位〇件のレコード取得は早い
  • 大量データのソートが必要な SELECT は優れてる
  • 例: ORDER BY をしたうえで、テーブルの全データを取得するなど
UPDATE のパフォーマンス
  • 遅い
  • 理由: 追記型アーキテクチャのため INSERT に近い処理を行う
DELETE のパフォーマンス
  • 遅い
  • セカンダリーインデックスの非同期のチェンジバッファ (ver.5.5+) で改善はされてる
テーブル結合 (JOIN) のサポートアルゴリズム
  • 基本的に、ネステッドループ結合のみ
  • ネステッドループ結合
  • ハッシュ結合
  • ソートマージ結合
トランザクション処理の分離レベル
  • REPEATABLE-READ (デフォルト)
  • ファントムリードを避けるため、ネクストキーロックという仕組みを採用
  • READ-COMMITTED
  • ネクストキーロックを取らず、違う方法でファントムリードを防いでいる
ストアドプロシージャ、トリガー
  • SQL のみサポート
  • MySQL 単体ではストアドプロシージャのステップ実行ができない
  • トリガーは FOR EACH ROW しかなくて FOR EACH STATEMENT がない
  • SQL 以外にも Python などを利用した外部プロシージャが使える
レプリケーションの論理型と物理型
  • MySQL 5.7 以降では物理型がデフォルト
  • 物理型のみ
  • バージョン 10 からは論理型も使えるようになっている
便利機能
  • PostGIS というサードパーティの OSS ツールが便利 (PostgreSQL が選ばれる理由)

カテゴリー: ウェブアプリ関連
タグ: mysql, postgresql

最初のサイドバー

簡単な自己紹介

ごく普通の 30 代サラリーマンです。世界を旅しながらの生活が目標!!
IT 全般に興味あり: Python (Flask, Django) / PHP (Laravel, Wordpress) / Golang / AWS / Network Security.
Read More…

サイト内検索

最近の投稿

  • 【VS Code プラグイン】Postman より便利!? Rest Client をオススメする理由
  • MySQL と phpMyAdmin を Docker Compose で作って、Python から接続する
  • Windows10 上の Ubuntu から “curl localhost” を実行すると “Connection refused” になる原因
  • リダイレクトの仕組み知ってる?Flask で調べるてみるのだ。
  • Apple 独自の 検索エンジンで何が変わるのか

アーカイブ

  • 2021年3月
  • 2021年1月
  • 2020年10月
  • 2019年3月
  • 2018年11月
  • 2018年10月
  • 2018年9月
  • 2018年8月
  • 2018年7月
  • 2018年5月
  • 2018年4月

タグ

amazon cloudfront amazon s3 aws coursera css django docker flask fullstack gcp github hawaii life in USA linux mongodb mysql postgresql pwa python sqlite vagrant

Contact
Privacy Policy and Term of Use
Copyright © 2023 · All rights reserved.