ニフクラエンジニアミートアップ様にお声がけをいただいて、このたび「第51回」のイベントにて登壇させていただきました。 fujitsufjct.connpass.com この4日前にも似たようなレイヤである「入門」のお話をする場があり、期間が近いこともあって「同じ内容でいいよ」としてお誘いいただいていたのですが、当日が近づくにつれて気合いが入ってきて、まったく新たに今回用の構成を組み立て直しました(一部ページの再利用はあります)。 時間に限りがあることもあり「何を伝えないか」に頭を悩ませましたが、まったくデータベース管理システム(DBMS)を触ったことがない人にイメージをつかんでもらうところを最…
この記事はMySQL Casual Advent Calendar 2018 10日目の記事です。
皆さんMySQLの学習はどのようにされていますか?
MySQLを含めたデータベースが落ちることはそのままサービスの停止につながることが多く、安定運用にはそれなりの知識と経験が必要だと思います。
データを管理しているという特性上、設定や運用方法に欠陥があると一時的にサービスが止まるだけではなく、取り返しのつかない障害になってしまう可能性もあります。 …
※ この記事はMySQL Casual Advent Calendar 2017の11日目の記事です。
A critique of ANSI SQL isolation levelsを読んで(読んだブログ)、MySQL(innodb)で分離レベルごとのanomaly(不整合)の発生について実験しました。使ったのはDockerで立てられる 8.0.3-rc-log MySQL Community Sereverです。
ここでは上記の論文であげられているanomalyと …
[さらに読む]
DBチューニングにおいて、気を配るべきところは数多くありますが、中でも真っ先に見るべきところはディスクI/Oでしょう。なぜかというと、メモリアクセスに比べてHDDの方が圧倒的に遅く、最もパフォーマンス阻害要因になりやすいためです。ディスクI/Oネックの解決方法を探っていくと、「テーブル/インデックス設計やSQL文の見直し」に行き着くこともまた多いです。これらが不適切だと、結果として大量のレコードをアクセスすることになり、ディスクI/Oが多く発生してしまうためです。根本的な原因はディスクI/Oにあります(CPUネックになることもありますが、その例は別の機会に取り上げます)。
…
dankogai氏のブログでバイナリデータとテキストデータの違いについて論じられているので、オトコ的にも少しコメントを加えてみたい。
== 404 Blog Not Found: バイナリとテキストの本当の違いより抜粋 ==
バイナリーとテキストの本当の違い、それは「終わり」にある。
・「終わり」がはじめにわかるのが、バイナリー。
・「終わり」が来るまで「終わらない」のが、テキスト。
本質的な違いは、これだけである。
果たしてそうだろうか。
…
今年はSSDの台頭がめざましい。価格の低下、大容量化、そして高速化、さらには低電力化まで期待できるというからもうHDDの出番はなくなるんじゃないだろうかというぐらいの勢いである。しかしそんなSSDもデータベースで利用する時には気をつけてもらいたい。
MySQL Performance
Blogでインテル製SSDを使って検証した結果がレポートされている。
…
今日はデータベースを移行するべき場合とそうでない場合を見極めるにはどうすればいいか。見極めずにデータベースの移行に手をつけると失敗してしまうことになるが、自ら失敗を望んでいる人は居ないだろう。データベースの移行において失敗しないためにはどうすればいいか?
これまでの投稿(「OracleからMySQLに移行することは可能なのか?」および「 …
データベース移行ではどのような作業を行わないといけないのか?全体的な流れを俯瞰的に見なければ、作業の見積もりなどが難しいことだろう。というわけで、今日はデータベース移行時に必要になる作業について7つのステップに分けて紹介しようと思う。言うまでもないことであるが、移行時には既存システムを直接いじるわけではない。(稼働中のシステムを直接いじるのは、走ってるクルマに乗り込むのと同じぐらい危険な行為である!!)開発用のシステムを別途用意して作業を進めるという前提で読んで欲しい。
1. データベース構築
…
答えは「可能な場合とそうでない場合がある」
…