タグ

mysqlに関するziguzaguのブックマーク (145)

  • RDB - 実例で学ぶ、JOIN (NLJ) が遅くなる理屈と対処法 - Qiita

    "Nested Loop Joinしか取り上げて無いのにタイトルが大きすぎないか" と指摘を頂いたので、タイトルを修正しました。Merge JoinとHash Joinのことはまた今度書こうと思います。 「JOINは遅い」とよく言われます。特にRDBを使い始めて間がない内にそういう言説に触れた結果「JOIN=悪」という認識で固定化されてしまっている人も多いように感じています。 たしかに、JOINを含むようなSELECT文は、含まないものに比べて重たくなる傾向があることは事実です。また、質的に問い合わせたい内容が複雑で、対処することが難しいものも存在します。しかし、RDBの中で一体どういうことが起きているのかを知り、それに基いて対処すれば高速化できることも少なくないと考えています。 稿では、JOINの内部動作を解説した上で、Webサービスを作っているとよく出てくるJOIN SQLを例題に

    RDB - 実例で学ぶ、JOIN (NLJ) が遅くなる理屈と対処法 - Qiita
  • What to tune in MySQL 5.6 after installation – Master MySQL

    Morgan Tocker MySQL Product Manager I work on the MySQL team at Oracle. My current position has me responsible for MySQL Server product management. I was previously community manager. As the result of a number of improvements to default values, MySQL 5.6 requires far less configuration than previous versions of MySQL. Having said that, I wanted to write about the settings that you may need to chan

  • おそらくはそれさえも平凡な日々: Test::mysqldのcopy_data_fromでテストが更に捗る話

    少し前ですがTest::mysqld 0.17からは copy_data_fromというオプションが加わっています。 これは、Test::mysqld起動時にコピー元のdataディレクトリを指定できるもので MySQLの起動時間を節約することができます。テスト開始時にDBに大量のデータを 入れておきたい場合に特に有効です。 特にゲームなどの場合は、大量のマスタデータもコードの一部と言えるので、ちゃんと 全部流し込んでからテストを実施したいという要件があるので重宝します。 さて、そのdataディレクトリをどうやって作ればよいかという話になるのですが、 それも、Test::mysqldに事前に作らせてどこかに配置しておけば良いでしょう。 手順としては例えば以下のようになります。 ‘tmp/test_mysqld_data’ をdatadirにしてTest::mysqldを起動 DDLとマスタデ

  • 複数バージョンのMySQLを管理・実行できるmysqlenv作った - tumblr

    主に開発環境でMySQLを複数バージョン同時に動かしたいということがあると思います。 なので複数環境でも動くやつ作りました。 https://github.com/shim0mura/mysqlenv 名前から分かるようにrbenvのコマンドインターフェースを真似ています。 すでにあるkamipoさんの作ったmysql-buildは当時のruby-buildをほとんどコピってきたとのことなので、それを真似してrbenvをほぼ丸々パクろうかと思ったけど、ソース見た感じ真似るのに時間掛かりそうなのでコマンドインターフェースとか複数コマンドの実行フローらへんの抽象的に使えそうな部分だけ真似て適当に実装しました。 インストール $ git clone git://github.com:shim0mura/mysqlenv.git お好きなディレクトリにcloneしたあとは以下を.bashrcにでも

  • にひりずむ::しんぷる - MySQL Casual #04 で mysqlenv 作った的な話をしてきました

    4/17 に日オラクルで開催された MySQL Casual #04 で話して来ました。 当日のスライドは以下になります。 http://xaicron.github.io/slide/mysqlcasual-04/ ちょいとまだ作り始めたばっかりで微妙なところも多々あるんですが、mysqlenv のレポジトリは以下になります。 https://github.com/xaicron/mysqlenv 当日の様子 @saisa6153 さん SQLドリル面白そうだった。 というか実際にペンで書き込んでるの!?ってなってびっくりした。 @kenjiskywalker さん けんじおじさん全然おじさんじゃなかったし、騙された気分 コンテンツ力に嫉妬した @yoku0825 さん インデックスショットガン!!! 5.6系でなんの変化もなくて悲しい話だった @matsukena さん 5.6.10

  • conma.me

    This domain may be for sale!

    conma.me
  • MySQLバックアップの基本

    バックアップ勉強会#2 (#bkstudy) での発表資料です。 http://atnd.org/event/bkstudy02 MySQLバックアップの基的な内容についてまとめています。Read less

    MySQLバックアップの基本
  • Ganglia の mysqld プラグインを導入してみた - あらびき日記

    この記事は abicky.net の Ganglia の mysqld プラグインを導入してみた に移行しました

    Ganglia の mysqld プラグインを導入してみた - あらびき日記
  • MySQL-MHAを自社環境へ適用する際に考慮すること « ボーダーレスライフ

    MySQL masterDBダウン時のサービス停止時間の短縮をはかるために、MHAについて調査してみました。 通常、運用中の大規模なサービスに、後からHAのアーキテクチャを導入する場合、多くの場合システムの再構築が発生するため、導入のコストは高くなる傾向があります。 予算を確保するため資料をつくって説明にまわり、メンテナンスの為のサービス停止許可を得るためにまた説明にまわり、サーバのセットアップ、データの移行、テスト、リリースと、コストも時間もかかる作業になります。しかしMHAは、既存の環境を入れ替えること無しに導入する事が可能なので、導入コストはとても低いです。 MHAがどういうものか、まだイメージができていない方には、この様に説明することができます。MHAは、masterDBダウン時に、手作業で行っていたslaveの昇格作業をスクリプト化し、監視処理からそのスクリプトを呼ぶことで、ダウ

  • Troubleshooting Relay Log Corruption in MySQL

    Have you ever seen the replication stopped with message like this: Last_Error: Could not parse relay log event entry. The possible reasons are: the master’s binary log is corrupted (you can check this by running ‘mysqlbinlog’ on the binary log), the slave’s relay log is corrupted (you can check this by running ‘mysqlbinlog’ on the relay log), a network problem, or a bug in the master’s or slave’s

    ziguzagu
    ziguzagu 2012/03/27
    作業中
  • mysqlbinlog なんてやめて show binlog events を使おう - いちいの日記

    夜中に眠いのに master のディスク容量がいっぱいで、でも binlog 用のスペースがない slave たちはまだ明日起きてから対応するんでも間に合うとき。よくありますよね。 ほっといてエラーになるよりかはその場しのげる方がマシ 多少サービス止めるなり i/o 負荷が高くてもいいから何とかしたい 根的には master 切り替えるしかない だが、そこまで元気がない そんなとき、いままで mysqlbinlog と格闘しながら pos のコピペに注意しつつやってたんですが、 show binlog events という便利コマンドがあることを今更知ったメモです。 基的な方針 master から絶対に読み込みがないデータを消して、延命することにします。しかし innodb だったりするので単に delete しても容量は減りません。 そこで、えいやとアプリを止めて (or table

    mysqlbinlog なんてやめて show binlog events を使おう - いちいの日記
  • Q4Mを簡単に導入する方法 - MySQL Casual Advent Calendar 2011 - blog.nomadscafe.jp

    xaicronとネタが被ったようだけど気にしない>< livedoorでOperations EngineerやってるkazeburoだYo。最近livedoorからオープンソース化された3億ファイルを管理してるオブジェクトストレージ「STF」でも使ってるMessage QueueのQ4Mのインストール方法を紹介するよ! カジュアルだからインストールだけ! 知ってる人も多いと思うけどQ4Mはkazuhoさんによって開発されたMySQLのストレージエンジンとして実装されてるMessage Queue。livedoorではもちろん、mixiやDeNAをはじめソーシャルゲーム各社でも使われている。 Message Queueの説明や使い方はDIS_COMMENTでテーブルスペースフルの神様が書いてるので参考になるね! Perl Hackers Hub 第10回 ジョブキューで後回し大作戦―Th

  • MySQLがおかしい!あなたならどうしますか? – MySQL Casual Advent Calendar 2011 - As a Futurist...

    しわっす!DBA 兼オペレーションエンジニア兼タスクマネージャやってる riywo です。何のネタを書こうかなぁと考えたのですが、正直ネタを仕込む時間もなかったので僕がいつもやってることをさらっと紹介するということで勘弁して下さい>< MySQL がおかしい! 03:14 hidek: なんかエラー出まくってるんだけど! 03:14 zigorou: MySQL と通信してるとこっぽい 03:15 riywo: 見ます こんなやりとりは皆さん日常茶飯事ですよね?ね?ね?こんな時に、DB に責任を持つものとして真っ先に対応するのが僕らの仕事です。でも、じゃあ具体的にこのあと何をしましょう?既にサービスはエラーだらけで一刻を争う状態です。 (対応開始) まずはエラーメッセージ 今回の様な場合はアプリのエラーログにどばっと MySQL に関するエラーが出ているでしょう。まずはそれを見ることが始ま

    MySQLがおかしい!あなたならどうしますか? – MySQL Casual Advent Calendar 2011 - As a Futurist...
  • InnoDBの表領域監視 - MySQL Casual Advent Calendar 2011 - まいんだーのはてなブログ

    こんばんはこんばんは!! myfinder です。 MySQL Casual Advent Calendar 2011 始まりました!! 1日目は言い出した自分から書きます。 よく Casualじゃない といわれのないツッコミを受ける MySQL Casual ですが、Casual Advent Calendar という名前の通りライターの皆さん自身が気軽に書けるネタでサクっとupすればOKです。 もちろんですが、綿密な検証に基づいたガチな記事も書ける方がいたら是非お願いします。 きわどいネタは id:kamipo さんや id:do_aki さんがきっとやってくれるので、お二人にお任せしましょう。 はじめに MySQL5.5 からは InnoDB がデフォルトストレージエンジンになりました。 4.xや5.1以前を利用している方も、今となっては InnoDB を使わないのは敢えてそれ以外を

    InnoDBの表領域監視 - MySQL Casual Advent Calendar 2011 - まいんだーのはてなブログ
  • 正しいベンチマークをするための10のポイント

    世の中ではたくさんの人が独自にベンチマークを行ない、独自に情報発信がされています。そのベンチマークの中には、非常に参考になるものもあれば、現実性に大きく欠けるものもあります。競合他社が、ライバル社の製品にとって不利な条件でベンチマークを行い、それを発信することも日常的に行われています。ベンチマークの結果を鵜呑みにすることは危険で、結果の意味を判断するスキルを持つことが重要です。これはプロジェクトにおいて負荷テストを行う場合にも重要です。負荷テストの条件設定が正しいかどうかを判断できるようになるためです。 ここでは、私がDBサーバのベンチマーク/負荷テストを行ったり結果を読んだりする上で、心がけているポイントを10個ほど紹介したいと思います。 ■ハードウェアに関する4つのポイント 1. ハードウェアのスペックと設定を注視する ハードウェア構成によってベンチマーク結果は劇的に変わるので、言わず

  • 加速的に膨張する宇宙のように進化するMySQL!最新開発版MySQL 5.6.3 m6新機能解説

    最新の開発版であるMySQL 5.6.3-m6がリリースされた。清く正しいMySQLerの皆さんはすでにダウンロードして、評価を楽しんでくれていることだろう。はっきり言ってこのバージョンは凄い。明らかに前バージョンのMySQL 5.6.2から搭載されている新機能の数は膨大である。それはMySQL 5.6.3のリリースノートを見てもらえば一目瞭然だ。凄いボリュームだからだ。 今回はそんな膨大な新機能を搭載したMySQL 5.6.3について、要点を解説しようと思う。MySQL 5.6.3は開発版なので今直ぐ番環境へ投入したい!というはやる気持ちはグッと我慢して頂きたいが、ぜひ評価はしていただきたいと思う。 パラレルSQLスレッドMySQLのレプリケーションでは、大量のクエリを実行すると何かとスレーブが遅れがちであった。スレーブでは単一のSQLスレッドだけがクエリを実行するからである。その問題

    加速的に膨張する宇宙のように進化するMySQL!最新開発版MySQL 5.6.3 m6新機能解説
  • 社内サーバインフラ勉強会(DB)

    2. 今回の目的 1. 「データを保存する」ということが、実際にど ういうことなのかを知る。 2. 中の動作を踏まえることで、効率のよいアプ リを書けるようになる。 3. 問題が起きたときに、その原因を突き止めら れるようになる。 一般論をメインとし、MySQL等の細かい 個別ノウハウは取り上げません。 3. おしながき 1. 「データを保存する」とはどういうことか 2. MySQLがディスクに書くまで 3. 仮想メモリとページキャッシュ 4. とっても複雑なストレージの動作 5. MySQLのインデックスとメモリの関係

    社内サーバインフラ勉強会(DB)
  • mysqlでskip-character-set-client-handshakeはもう使わないほうがいいと思われ | へぼい日記

    ホーム > mysql | perl > mysqlでskip-character-set-client-handshakeはもう使わないほうがいいと思われ 新しい 古い skip-character-set-client-handshake を [mysqld] セクションに追記すると、クライアントがどんな文字コード設定をもっていようが問答無用で character_set_* を (_system をのぞいて) すべて同じ値に統一してくれる http://d.hatena.ne.jp/a666666/20090826/1251270979 ふーむ。 skip-character-set-client-handshakeを薦める文書がネット上にはやたら転がってるんだけど、これには大きな落とし穴がある。 たしかに表示されるcharacter_set_*は統一されるかもしれないがこれはあくま

  • MySQL5.5で準同期レプリケーション構築 - IT Fragments

    IT Fragments 情報技術系のトピックを扱う個人ブログです。プログラム制作物・システム考察・調べ物の備忘録・お勧めソフトウェア情報など MySQL5.5を用いた通常・準同期レプリケーション構築の解説です。レプリケーションとは何か、通常・準同期レプリケーションの対比、構築方法、必要な保守作業など。対象読者は多少MySQLサーバの設定を行ったことのある方を想定しています。 基礎知識 レプリケーションを構成する要素・どんな動作をするか・レプリケーションの種類。レプリケーション構築の前に知っておくべきことを解説します。 レプリケーションとは何か MySQLのレプリケーションはマスターサーバのデータを一つ以上のスレーブサーバに複製することでデータを冗長化する機能です。 レプリケーションを用いれば複数個所にデータベースの複製を設置できるので、荷分散と共に可用性・信頼性を向上させられます。設定は

  • 最強のMySQL HA化手法 - Semi-Synchronous Replication

    MySQL 6.0で搭載される予定の機能の一つに、Semi-Synchronous Replicationというものがある。コイツを使うととんでもなく凄いHA化ができるので、今日はその方法を紹介しよう。 まずはSemi-Synchronous Replicationの機能説明から。そもそもSemi-Synchrounousってナニ?どうして完全な同期でもなく非同期でもなくSemi-Synchronousなの?という疑問をまずは解消したいと思う。さっそく次の図を見て欲しい。 これはSemi-Synchronous Replicationの動作を図で表したものである。図だけではなんだかよく分からないと思うので、以下に各ステップの詳細を説明する。 アプリケーション(クライアント)からトランザクションをCOMMIT要求を出す。 バイナリログを更新する。 ストレージエンジン(テーブル)を更新する。

    最強のMySQL HA化手法 - Semi-Synchronous Replication