タグ

mysqlに関するnetfanのブックマーク (37)

  • レプリケーションしてるMySQLで、マスタやスレーブが障害停止した場合のリカバリプラン - (ひ)メモ

    MySQLで、レプリケーションベースのHAな構成について考えたメモです。 3台(というか2台+1台)がいいかなぁと思っていて、前半はその理由を、後半では{マスタ,スレーブ}が{再起不能になった,ちょっとダウンしてすぐ復帰した}場合のリカバリプランについて書きます。 今のところはこれがベストかなと思っているのですが、「こうしたほうがいいと思う!」「ここがおかしい!」などなどのご意見はコメント、TBなどでいただけるとうれしいです。 ゴール マスタが落ちてもぐーすか寝ていられるようにしたい リカバリの作業はできるだけ単純に、かつ、短時間で完了するようにしたい めんどくさいのはいや 基構成、方針 2台+1台 サービスで使うのは2台 (db1, db2) もう1台は管理用 (db3) スレーブを多数並べる構成にはしない 台数増えると管理コストが上がる マスタダウン時のフェイルオーバとそのフェイルバ

    レプリケーションしてるMySQLで、マスタやスレーブが障害停止した場合のリカバリプラン - (ひ)メモ
    netfan
    netfan 2009/10/25
  • mysqlでいちいちshow databasesとか打つのがめんどい→readlineのマクロで解決 - (ひ)メモ

    MySQLでいちいちshow tables;とか打つのがだるい。\tみたいなalias設定できないのかなぁ http://twitter.com/weboo/status/1658300902 おぉ、readlineのマクロを使えばいいのかー http://twitter.com/weboo/status/1658314333 なるほ!ってことでちょっと設定してみました。 # ~/.inputrc $if mysql "\C-xd": "show databases;" "\C-xt": "show tables;" "\C-xu": "select user,host,password from mysql.user order by user,host;" "\C-xb": "select user,host,db from mysql.db order by user,host;"

    mysqlでいちいちshow databasesとか打つのがめんどい→readlineのマクロで解決 - (ひ)メモ
    netfan
    netfan 2009/07/20
  • なぜMySQLのサブクエリは遅いのか。

    よくMySQLはサブクエリが弱いと言われるが、これは当だろうか?半分は当で半分は嘘である。MySQLのサブクエリだってなんでもかんでも遅いわけではない。落とし穴をしっかり避け、使いどころを間違えなければサブクエリも高速に実行できるのである。今日はMySQLがどんな風にサブクエリを実行し、どのような場合に遅いのかということについて説明しよう。 EXPLAINで実行計画を調べた際に、select_typeにはクエリの種類が表示されるのだが、代表的なサブクエリには次の3つのパターンがある。 SUBQUERY DEPENDENT SUBQUERY DERIVED 結論から言おう。遅いのは2番目、DEPENDENT SUBQUERYである。DEPENDENT SUBQUERYとはいわゆる相関サブクエリに相当するもので、サブクエリにおいて外部クエリのカラムを参照しているサブクエリのことである。そし

    なぜMySQLのサブクエリは遅いのか。
    netfan
    netfan 2009/03/31
  • さらにMySQLを高速化する7つの方法

    MySQLを高速化する10の方法という記事がとても好評だったようである。記事を読んで頂いた皆さん、ありがとう。 この記事に対する便乗(?)でWeb屋のネタ帳: PostgreSQLを高速化する16のポイントという記事を書いて頂いたようだが、そちらの方もかなり人気だったようである。他人が作ったソフトウェアに改良を加えるというフリーソフトウェアやオープンソースソフトウェアの精神も基は便乗であるので、便乗については大いに賛成したいというかむしろ取り上げてくれてありがとう!!と思うわけであるが、ここでさらに俺はこう考える。 と。 Web屋のネタ帳さんの記事では16のポイントが紹介されているが、漢(オトコ)のコンピュータ道の記事は10の方法だったのであと6つ足りない。オトコは数で勝負!!というわけで今日はネタを振り絞ってさらに7つのMySQL高速化テクニックを紹介しよう。 1. インテルコンパイラ

    さらにMySQLを高速化する7つの方法
    netfan
    netfan 2009/03/13
  • 漢(オトコ)のコンピュータ道: MySQLを高速化する10の方法

    ちょっとキャッチ−なタイトルをつけてしまったが、今日は独断と偏見でMySQLを高速化する方法を10個紹介しよう。MySQLサーバをチューニングするときや初期導入する場合などに参考にしてもらいたい。 1. バッファを増やす、または減らす チューニングの基中の基であるが、適切なバッファサイズを設定することはパフォーマンスチューニングの要である。主なバッファは次の通り。 innodb_buffer_pool_size・・・InnoDBだけを利用する場合は空きメモリの7〜8割程度を割り当てる最も重要なバッファである。余談だが、実際にはここで割り当てた値の5〜10%ぐらいを多めにメモリを使うので注意が必要だ。 key_buffer_size・・・MyISAMだけを利用する場合は、空きメモリの3割程度を割り当てるといい。残りはファイルシステムのキャッシュ用に残しておこう。 sort_buffer_

    漢(オトコ)のコンピュータ道: MySQLを高速化する10の方法
    netfan
    netfan 2009/02/26
  • MySQL Workbench

    Thank you very much for the great reactions and contributions we received since we put our first alpha build out last week. We have incorporated patches submitted by the community and further improved some code (even though we're currently busy sitting together at our Database Group Developer Meeting). So we've prepared the next packages and put them on our server. We also updated (cleaned up) the

  • フリーで使えるDBのモデリングツールまとめ

    森川です。 巷ではエイプリルフールネタがおさかんですが、普通にデータベースのモデリングツールの紹介です(エイプリルフールネタが思いつかない…)。 普段MySQLならDBDesigner4、PostgreSQLならClayを使用しているのですが、他に何かよいツールはないものかと調べてみました。 Clay 言わずと知れた?モデリングツールです。Eclipseのプラグインで、無償でも使用可能です。MySQL、PostgreSQLで使用可能です。 無償版ではER-図や、DB定義書を出力できません。対応するDBが少なかったりもします。 個人的には、PostgreSQLを使用する場合によく使います。外部キー制約などにも対応しているのでそれほど困りません。 リバースエンジニアリングに対応しているのも気に入っている理由の一つです。 ちなみに、リバースエンジニアリングをするにあたってPostgreSQLのJ

    フリーで使えるDBのモデリングツールまとめ
    netfan
    netfan 2008/04/09
    モデリングツール
  • Kazuho@Cybozu Labs: Tritonn (MySQL+Senna) の join を高速化

    « setlock を使って cron をぶんまわす方法 | メイン | Range Coder の終了処理 » 2008年02月05日 Tritonn (MySQL+Senna) の join を高速化 自分の利用形態において、Tritonn の処理を最適化するパッチを書きました。具体的には、2種類の最適化を行いました。ひょっとするとバグがあるかもしれませんが、興味がある方は、以下のパッチ (tritonn-1.0.9用) とあわせてごらんください。 1. 全文索引内にプライマリキーを格納 SQL クエリを最適化する際、アクセスしたい全カラムを格納したインデックスを作成することで行データへのアクセスを抑止して速度を稼ぐ、というのは定石のひとつです。しかし、MySQL の全文索引 (フルテキストインデックス) では、他のカラムと組み合わせた複合キーを作成することができません。このことが、T

  • mysqlコマンドで、テーブル名とかカラム名の補完(completion)をする方法 - (ひ)メモ

    追記: rehash(auto-rehashも含む)すると、SQL文の補完(seleでタブ打鍵とか)が効かなくなるよと、はす向かいの人に教えてもらいました。 個人的には、SQLは「mysql> help select」とかでオンラインヘルプがびょっと出るので、スキーマの補完ができるんならSQLの補完はとりあえずあきらめてもいいかなと思っています。 常々、テーブル名とか補完できるといいなーと思っていたので、ボロっときいてみたら教えてもらいました。あざーーーーっす! id:mikihoshi++ id:tokuhirom++ id:precuredaisuki++ おかげで効率が300%上がりました。(Benchmark::Stopwatchで計測) http://dev.mysql.com/doc/refman/5.1/en/mysql-command-options.html#option

    mysqlコマンドで、テーブル名とかカラム名の補完(completion)をする方法 - (ひ)メモ
    netfan
    netfan 2008/01/25
    あざーーっす!
  • MySQLがSUNに10億ドルで買収されました

    MySQLといえば、mixiや楽天Amazonなどなどの企業がネットサービスを提供するために使っているオープンソースのデータベースですが、それが買収されたとのこと。何の冗談かと思ったら当のようです。10億ドルというと、日円で約1096億円。買収したのはJavaで有名なサン・マイクロシステムズ。 詳細は以下から。 Sun to Acquire MySQL for $1 Billion - washingtonpost.com 既にSunやMySQLのブログでも報告されています。 Sun to aquire MYSQL : Solar Flare Jonathan Schwartz's Blog: Helping Dolphins Fly Sun acquires MySQL これによって、よりエンタープライズ分野におけるMySQLのシェアを上昇させるつもりらしい。また、これまでは商用デ

    MySQLがSUNに10億ドルで買収されました
    netfan
    netfan 2008/01/17
  • MySQL 文字化け問題を本気で直す

    mysql> status; -------------- mysql Ver 14.7 Distrib 4.1.20, for redhat-linux-gnu (i386) using readline 4.3 Connection id: 36 Current database: staff2006 Current user: maiha@localhost SSL: Not in use Current pager: lv Using outfile: '' Using delimiter: ; Server version: 4.1.20 Protocol version: 10 Connection: Localhost via UNIX socket Server characterset: latin1 Db characterset: latin1 Client char

    netfan
    netfan 2007/11/29
    文字化け
  • MySQLのUsing Filesort : Bacteria.jp

    週に一度か二度、Bacteriaが管理するサイトは大規模なプロモーションをすることがある。 140万通ものメール広告でもってやるわけだけど、そのレスポンスが強烈に重い。 サーバが悲鳴を上げているのがわかる。 ちょっと重すぎるよこれどうなってんのってことで、MySQLのslow_queryで分析をはじめることにした。 すると一番最初に引っかかったのが下記の事例だった。 MySQLにクエリを投げる場合、Explainして最も見たくないのがUsing file sortの文字だ。 file sortは負荷がかかると、Using Temporaryまで出てき始める。 こうなるともうお手上げで、クエリは結果を表示するためにディスクアクセスを繰り返し、速度は低下の一途をたどることになる。 file sortが発生するときは、たいてい決まっているがorder byを使うときだろう。 そりゃそ

    netfan
    netfan 2007/10/17
  • DSAS開発者の部屋:5分でできる、MySQLのメモリ関係のチューニング!

    MySQLのチューニングにおいて非常に重要となるメモリ(バッファ)関連のパラメータについて、 チューニングのポイント DSASのとあるDBサーバ(実メモリ4GB)の実際の設定値 をまとめてみます。 また、必要メモリの総量の計算や限界値を越えてないかチェックしてくれるスクリプトも紹介します。 是非、参考にしてみてください! まず最初に注意点を。 バッファには2つのタイプがあります。 グローバルバッファ スレッドバッファ グローバルバッファはmysqld全体でそのバッファが1つだけ確保されるもので、 これに対し、 スレッドバッファはスレッド(コネクション)ごとに確保されるものです。 チューニングの際にはグローバル/スレッドの違いを意識するようにしましょう。 なぜなら、スレッドバッファに多くのメモリを割り当てると、コネクションが増えたとたんにアッという間にメモリ不足になってしまうからです。 in

    DSAS開発者の部屋:5分でできる、MySQLのメモリ関係のチューニング!
    netfan
    netfan 2007/10/01
    チューニング
  • Today's Bugfix: MySQLにおけるFILE権限の付与方法 - Vox

    現象:  MySQL4.1.21において、特定のユーザーに、あるテーブルに対するFILE権限(LOAD DATAコマンドの実行に必要)を与えようと「GRANT FILE ON DB名.テーブル名 TO ユーザー名」とコマンドを叩くと、「Incorrect usage of DB GRANT and GLOBAL PRIVILEGES」というエラーが返される。対応: http://archives.neohapsis.com/archives/mysql/2006-q2/1956.html 似たような質問を見つけたので読んでみたところ、FILE権限は(データベースやテーブルに対してではなく)グローバルレベルに適応されるものであるので、ユーザーに権限を与える場合は「GRANT FILE ON *.* TO ユーザー名」と書け、ということらしい。 5.0のマニュアルには確かにそういう記述があるも

    netfan
    netfan 2007/09/27
    grant file
  • ウノウラボ Unoh Labs: MySQL オペミスでデータが破損してしまった場合の復旧方法

    こんにちは satoです。 オペミスで update に where句を付け忘れたり、プログラムのバグでデータが破損してしまったりした場合でも、バイナリログには更新SQLがすべて書き込まれるので、バックアップデータからオペミスが起こるまでの全てのSQLを流し込めれば、元の状態に戻すことは可能です。 •バイナリログを取っている •オンラインバックアップをとっている(mysqldumpMySQLを止めた状態でのcpによるバックアップとバイナリログ) •バックアップ時点でのバイナリログの書き込み位置を保存している 以上のような状態でデータが壊れた時の復旧手順をまとめてみました。シナリオとして •ある1カラム email をupdateしようとしたら、間違ってwhere 句を付け忘れ 全レコードをupdateしてしまった •気がついたのが半日後 というオペミスが発生したとします 1) データベー

    netfan
    netfan 2007/08/28
    復旧方法
  • MySQL5以降で SYSDATE() 使うと大抵の場合は遅くなる - ニフラムで消せる相手は自分くらいです

    豆これ知識な。 理由はMySQLリファレンスマニュアルの「11.5. 日付時刻関数」を読めばわかるけど SYSDATE() は、それが実行された時間を戻します。これは NOW() の動作によって異なり、ステートメントが実行を開始する時間を示す定数時間を戻します。 ちなみに NOW() は NOW() は、ステートメントが実行を開始する時間を示す定数時間を戻します。 つまり MySQL5 以降の SYSDATE() はステートメント内で実行される度に実行された時間を返さなきゃいけないので、WHERE区に書いたりしたら悲惨なことになる。 以下、遅くなる例。 SELECT COUNT(*) FROM unk_table WHERE created_on > SUBDATE(SYSDATE(), 1); テーブルにあるレコード件数分だけ SYSDATE() が実行される。 SELECT COUNT

    MySQL5以降で SYSDATE() 使うと大抵の場合は遅くなる - ニフラムで消せる相手は自分くらいです
    netfan
    netfan 2007/08/24
  • MySQLノウハウ

    いろいろなからメモってきたメモのメモ。出典を書いておくのを忘れた。思い出し次第補完するかも。 deleteのコストは高いので、無効化を示すフィールドを作ってupdateすべき slow query logに要注意 多くのエントリでほとんどのフィールドが同じ値を持つ場合はインデックスの効果が小さい →複合インデックスの効果が大きい 複合インデックスは指定の順番が大切。AとBという指定の場合、A単独でもインデックスの効果がある。逆は真でない。 インデックスが使われる場面は フィールド値を定数と比較するとき (where name = 'hogehoge') フィールド値でJOINするとき (where a.name = b.name) フィールド値の範囲を求めるとき (<,>,between) LIKE句が文字列から始まるとき (where name like 'hoge%') min(),

    netfan
    netfan 2007/08/09
  • EnterpriseZine:DeNAの人気サイトに学ぶ LAMPによるWeb-DBシステム構築/運用の極意 (前編)

    EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けに、EnterpriseZine Day、Security Online Day、DataTechという、3つのイベントを開催しております。それぞれ編集部独自の切り口で、業界トレンドや最新事例を網羅。最新の動向を知ることができる場として、好評を得ています。

    EnterpriseZine:DeNAの人気サイトに学ぶ LAMPによるWeb-DBシステム構築/運用の極意 (前編)
    netfan
    netfan 2007/08/09
    LAMP,モバゲー,DeNA,operation
  • [MySQLウォッチ]第37回 文字コードに起因する問題は文字化けだけじゃない,ソート順とcollationの関係

    MySQLウォッチ]第37回 文字コードに起因する問題は文字化けだけじゃない,ソート順とcollationの関係 前回は,マルチバイト文字コードを使用しているユーザであれば陥りがちな「文字化け」をテーマに解説を行った。特に日では,複数の文字コードが存在するので,混乱を助長してしまう。 さて,文字コードの違いによる弊害は,文字化けという表示の問題だけではない。データベースは,データの蓄積と提供が重要な役割である。大量のデータを提供する際には,並べ替えが必要になる。実は,文字データの場合,文字コードによって,並びが変化することをご存知だろうか。今回は,ソート処理と文字列の関係を解説する。 ソート処理での文字コードの影響 文字には,大文字と小文字のように同じ文字ながら,単語や文書での位置によって体裁が変わる場合がある。また,海外では,地域によって,アルファベットの並びが異なったり,文字自体が

    [MySQLウォッチ]第37回 文字コードに起因する問題は文字化けだけじゃない,ソート順とcollationの関係
    netfan
    netfan 2007/08/08
  • 階層化されたデータをMySQLで扱う - カイハツニッキ(2005-02-08)

    _ [映画] ネバーランド (ちょっと内容がわかってしまうようなこと書いてます) 原題Finding Neverlandってことで、Finding Foresterなんかも思い出されます。思い出すと言えば、(劇)作家を主人公として作中作が作り上げられていくところとかは、最近だと「あなたにも書ける恋愛小説」や「舞台よりも素敵な生活」もありましたねー。ちょっと多い印象で、人気の劇作家がスランプに陥った後、近所の子供にinspireされてよい作品が出来ていく、というプロットは非常に似ているし、まぁありがち、ですよね。 と、思って見てたんですが、そんなことはどうでもよいくらい良い出来でした。ジョニーデップです。ジョニーデップ。ジョニーデップ。 ケイトウィンスレットは、病人なんだし、もう少し痩せてもよいと思いました。 _ [ソフトウェア] RDBMS(MySQLかな)でツリー構造 RDBMSを利用し