エンジニアもどきのよしなしごと

仕事や趣味の備忘録

オープンソース RDBMSイマドキの機能を使おう! メモ書き。

オープンソース RDBMS イマドキの機能を使おう!

 

にて、メモ書き。

ノートの記載をそのまままとめているだけなので、後ほど補足とか記載したいところ。

 

オープンソース RDBMS 御三家として提唱していきたい。
 Postgre SQL
 MySQL
 Firebird
  ヨーロッパ・ロシア・南米で有名
 
 「オープンソースDBの成熟度を計る」
 
 都市伝説
 MySQL
  ・バイナリカラムのバックアップがとれない。
  ・サブクエリ、トランザクションがとれない。
  ・MyISAMInnoDBよりはやい。機能が多い。
  
 Postgre
  ・Windowsが無い
  ・バキューム必要で、動作時世界がとまる。
  ・MySQLより遅い
 
 Firebird
  ・ブラウザじゃないの??

 →各都市伝説は、解消されている。
   

 以下の項目の対応について。
 ・VLDB(VeryLargetDatabase)
  →パーティショニング
   巨大な表をキーを元に、水平分割する。
   MySQL 5.1
   Postgre 8.1

  →マテリアライズドビュー
   ビューを実体化してパフォーマンスを向上させる。
   Postgre 9.3から
   
 ・NoSQL
  使用用途として、
  →JSON形式が扱えればいい。ということなら
   ・MySQLが5.7
   ・Postgre9.2
     以降部分更新されていく。
  
  →外部との連携なら
   ・Postgre9.xのFDW(ForeignDataWrapper)
    dblinkが他DBの外部表と違って柔軟。
   
  →Memcache d のプロトコルを使用したいなら
   ・MySQL5.6でInnoDB memcache dプラグインが実装
    同5.7で性能がUPした。
  
 ・GIS(Geographic Infomation System)
  →Postgre拡張のPostGISデファクトスタンダード
  →MySQL5.7 で、拡張ではなく本体組み込みとしてre-bornした。

 ・SQL標準に対してのサポート
  もともとMySQLは便利な独自SQLが多々ある。
   →他のRDBMSSQL標準にも影響と思われる機能もある。
  PostgreはSQL標準をサポート。
  FirebirdSQL標準を追随。
  
 ・SQL 2003
  
  日本語による全文検索
   MySQL 5.7から、InnoDB FTS(FullTextSearch)
   
   Groonga
   ・MySQL Mroonga
   ・Postgre PGroonga
  
  TABLE SAMPLE
   Postgre 9.5でサポート
   →指定テーブルから、サンプル情報を取得するための構文。
  
 ・SQL 2008
  Limited Fetch
   LIMIT句のようなもの。
   もともとページネーション制御で多々使用されていたが、SQL標準には存在していなかった。
   
   Postgre、MySQL互換モードによって、LIMIT句自体の使用はできる。
  
  MERGE句
   Firebirdでサポートされている。
   入力したSQLの句に対して、条件が一致するものがあったときはAの処理
   一致するものが無かったときはBの処理。といった形での記入ができる。
   
   MySQL、Postgreでは、INSERT 文にオプションとして構文を付け足したり、制約名を記載することによって同等の制御を作成することが可能。
   
  共通表式
   再帰クエリのために利用されることが多い。

   階層構造のクエリ
   WITH Recursive ~

   CTE(再帰クエリ)
   Postgre、Firebirdではサポート
   MySQLはサポートしていない。
  
 HA(High Availability)
  
  ・レプリケーション
    MySQLの代名詞
    5.6でGTID対応。
    レプリケーションにおける、マスター・スレーブの構成は、あらゆる想像力を働かせて、さまざまに作成することが可能。
   
   レプリケーションとスケールアウト

   Postgre
    ストリーミングレプリケーションを9.0からサポートしている。

 それぞれどのような開発向けなのか。
  ・大規模開発
    ・商用エンタープライズSQL
  ・中規模
    ・MySQL
    ・Postgre
  ・小規模(組み込み)
    ・MySQL
    ・Firebird
     →組み込み用のEmbdded Libraryが提供されている。

 セキュリティ

 監査(Audit)

 暗号化
  Postgre
   TDE(透過的暗号化)
 
 クラウド
  MySQL、Postgreには向いている。
  それぞれ、拡張版が作成されており、それを利用することが多い。
  RDS for Aurora

  Postgre SQL互換を??
   Amazone Redshift
   大容量データ対応
 
 RDBMSと、それ以外では、当然向き不向きがある。
  トランザクション対応など