「 データベース 」一覧

binlogが有効でない非暗号化RDS MySQLから暗号化Auroraに無停止で移行する方法

binlogが有効でない非暗号化RDS MySQLから暗号化Auroraに無停止で移行する方法

セクションナイン の 吉田真吾(@yoshidashingo)です。 DB無停止移行は人類の夢 利用する特徴 手順 移行元データベース(MySQL) 中間データベース(Aurora Read Replica) 移行先データベース(暗号化済みAurora) DMS ソース/ターゲットデータベースに接続する タスクを作成して実行する 継続レプリされているか確認する アプリ切替 移行元にデータを書き込む まとめ DB無停止移行は人類の夢 RDS MySQLからAuroraに移行したいけど、デフォルトのセキュリティグループを使用してるのでbinlogが有効にできず、無停止でAurora移行ができない、…

MySQL with InnoDB のインデックスの基礎知識とありがちな間違い

MySQL with InnoDB のインデックスの基礎知識とありがちな間違い

こんにちは、サービス開発部の荒引 (@a_bicky) です。 突然ですが、RDBMS の既存のテーブルを見てみたら「何でこんなにインデックスだらけなの?」みたいな経験はありませんか?不要なインデックスは容量を圧迫したり、挿入が遅くなったりと良いことがありません。 そんなわけで、今回はレコードを検索するために必要なインデックスの基礎知識と、よく見かける不適切なインデックスについて解説します。クックパッドでは Rails のデータベースとして主に MySQL 5.6、MySQL のストレージエンジンとして主に InnoDB を使っているので、MySQL 5.6 の InnoDB について解説しま…

PostgreSQLで排他制約がめっちゃ便利!!

PostgreSQLで排他制約がめっちゃ便利!!

中国地方DB勉強会っていう控えめに言っても最高の勉強会があるんだけどそこで排他制約について教えてもらいました。 ikkitang1211.hatenablog.jp 排他制約って雑に説明すると重なりを拒否する制約です。 僕は使った事なかったのですが勉強会の中で事例紹介を受けて、めっちゃ便利だったのでここでご紹介します。 どんなときに使うの? 実際にはどんなときに重なりを制御したいかというとよく使うのは次の2つ。 図面の重なり 時間の重なり 1つ目は幾何学的な図面を表現するときです。 実際にPostgreSQLは円や四角をSQLで表現できます。例えば地図上で特定の座標から半径100メートルの円を…

xtrabackupが実行中かどうかをSQLだけで確認する思考実験

xtrabackupが実行中かどうかをSQLだけで確認する思考実験

Percona Serverには LOCK TABLES FOR BACKUP とかあったよなと思いつつ、たぶんPercona Serverじゃないので置いておく。 xtrabackup-2.4.6のソースコードをナナメに読んでいくと、 SET SESSION wait_timeout = 2147483 を押し込んでいる箇所があったので、ここで検出できないかなと思い付く。 取り敢えず王道(?)として、 performance_schema.variables_by_thread で引いてみた。

MySQL 8.0.1でutf8mb4_ja_0900_as_csが導入された

MySQL 8.0.1でutf8mb4_ja_0900_as_csが導入された

Sushi = Beer ?! An introduction of UTF8 support in MySQL 8.0 | MySQL Server Blog (ユーザーによる日本語訳: 寿司=ビール問題 : MySQL 8.0でのUTF8サポート入門 (MySQL Server Blogより) | Yakst)で言及されていた日本語用の照合順序 utf8mb4_ja_0900_as_cs 。 MySQL 8.0.1 で実装されていたので試してみた。

MariaDB 10.2.4の –flashback を触ってみる

MariaDB 10.2.4の –flashback を触ってみる

ドキュメントはこちら。 Flashback - MariaDB Knowledge Base"Common use case" をとっても雑に説明すると、 - `--flashback` をつけたmysqldが吐いたバイナリーログに対して - `mysqlbinlog --flashback` でデコードすると、フラッシュバックっぽいことができる という感じ。

MySQL 8.0.1の新顔、GROUPING集約関数

MySQL 8.0.1の新顔、GROUPING集約関数

TL;DR WITH ROLLUPの結果行をHAVING条件に書けるようすることができる。 それ以外の時には使わない。 MySQL :: MySQL 8.0 Reference Manual :: 13.20 Miscellaneous Functions 使い方。 そもそも WITH ROLLUP の使い方を知らないと楽しくもなんともないので WITH ROLLUP の説明から。 まずは WITH ROLLUP なしバージョン(SUM関数を噛ませてるのはあとで WITH ROLLUP した時のため)

– PR –
– PR –