CUBE SUGAR CONTAINER

技術系のこと書きます。

MariaDB

SQL: CASE 句を使って縦持ちのデータを横持ちに変換する

使った環境は次の通り。 $ sw_vers ProductName: Mac OS X ProductVersion: 10.12.5 BuildVersion: 16F73 $ mysql --version mysql Ver 15.1 Distrib 10.2.6-MariaDB, for osx10.12 (x86_64) using readline 5.1 サンプルのテーブルとレコードを用意する ま…

SQL: COALESCE() 関数で NULL を別の値に置き換える

RDB のスキーマ設計において、なるべくなら Nullable なカラムは無い方が良いけど、そうもいかないときがある。 そんなときは COALESCE() 関数を使うと NULL になっているフィールドを別の値に置換できる。 これは、特定の値を NULL に置換できる NULLIF() …

SQL: NULLIF() 関数を使ってゼロ除算を防ぐ

RDBMS によってはゼロ除算をするとエラーになってしまうものがある。 例えば PostgreSQL とかがそう。 $ psql --version psql (PostgreSQL) 9.6.3 次のようにゼロ除算をするとエラーになって結果が得られない。 これは SQL を使って演算するときに問題となる…

SQL: UNION を使ってテーブルを縦に連結する

今回は SQL の UNION を使ってみる。 試した環境は次の通り。 $ sw_vers ProductName: Mac OS X ProductVersion: 10.12.5 BuildVersion: 16F73 $ mysql --version mysql Ver 15.1 Distrib 10.2.6-MariaDB, for osx10.12 (x86_64) using readline 5.1 典型的…

SQL:2003 のウィンドウ関数を MariaDB 10.2 で試す

今回は SQL:2003 の規格で追加されたウィンドウ関数を使ってみる。 この機能を使うとカラムをグループ化して集約関数を使うのが楽になる。 使った環境は次の通り。 $ sw_vers ProductName: Mac OS X ProductVersion: 10.12.5 BuildVersion: 16F73 $ mysql --…

Galera Cluster の書き込みノードはひとつに制限した方が良さそう

Galera Cluster は MySQL/MariaDB をマルチマスタ構成で冗長化するためのアプリケーション。 マルチマスタなので、本来はどのノードに対しても書き込みを行うことができる。 ただ、後述する理由からどうやら書き込みに使うノードはひとつに制限した方が良さ…

MariaDB のデータを mysqldump でバックアップ・リストアする

MySQL (MariaDB) のデータをバックアップ・リストアする方法には色々なやり方があるみたい。 今回は、その中でも最もオーソドックスな mysqldump を使う方法を試してみる。 また、mysqldump はその時点でのデータベースの内容を全て書き出すフルバックアップ…

MariaDB Galera Cluster - Known Limitations について調べた

MariaDB Galera Cluster は MariaDB を同期レプリケーション型のマルチマスタ構成で冗長化するためのアプリケーションだ。 マスタ・スレーブ構成のようにフォールバック用のスクリプトを自分で用意する必要もないし、マルチマスタ構成なのでクラスタを構成す…

sysbench を使って MySQL をベンチマークする

MySQL の設定や構成またはバージョンの違いによるパフォーマンスの変化を調べるにはベンチマークツールが必要になる。 今回は sysbench というツールを使って MySQL のパフォーマンスを測ってみよう。 検証環境には CentOS7 を使った。 $ cat /etc/redhat-re…

MariaDB Galera Cluster を CentOS7 で使ってみる

MySQL (MariaDB) の冗長化には Master-Slave 構成を組んだり MySQL Cluster を使ったりと色々ある。 その中で Galera Cluster は同期レプリケーションを用いたマルチマスタ型のクラスタが組むやり方だ。 今回はこの MariaDB Galera Cluster を CentOS7 で組…