タグ

MySQLに関するwavementのブックマーク (47)

  • Kazuho@Cybozu Labs: MySQL のボトルネックを統計的に監視・解析する方法

    MySQL のチューニング、と言った場合には、サーバーパラメータの調整や EXPLAIN コマンドを利用したクエリ実行計画の最適化が話題に上ることが多いです。しかし、発行する全ての SQL について、いちいち EXPLAIN コマンドを使って確認していては、いくら時間があってもたりません。チューニングを効率的に進めるには、まず、ボトルネックとなっている SQL クエリを特定し、次にその最適化を行うべきです。 ではどのようにして、ボトルネックを特定するのか。MySQL Conference & Expo 2009 のキーノートにおいて Mark Callaghan 氏は、Google では SHOW PROCESSLIST コマンドを使った統計的アプローチを使っていると述べていらっしゃいます (参照: MySQLConf 09: Mark Callaghan, "This is Not a

  • MySQL のチューニング | バシャログ。

    中々すっきりしない天気が続きますね。早くスカっっっと晴れて夏番突入してほしいものです。こんにちは、nakamura です。 さてさて今日は MySQL のパフォーマンスチューニングについて書かせて頂きます。先日、某案件にて簡単にですがチューニングを行う機会があり、備忘録的にいじくったパラメータとその説明を残しておこうと思います。 MySQL の設定パラメータは非常に多岐に渡りますが、パフォーマンスを改善したい際に主に修正するのはキャッシュやメモリ関連のパラメータです。という事で今回はキャッシュ・メモリ関連の設定項目をいくつかご紹介させて頂きます。 key_buffer_size レコード数が膨大なテーブルで効率良く検索を行う為にインデックスを使用される方は多いと思いますが、この key_buffer_size を適切に設定しておかないとせっかく作成したインデックスも意味のないものになりか

    MySQL のチューニング | バシャログ。
  • 【MySQLウォッチ】第7回 大規模システムを支えるMySQLのレプリケーション機能:ITpro

    このところ楽天をはじめとして,MySQLを活用した大規模な事例が増えている(関連記事)。このような大規模,かつサービス停止の許されないシステムを支えているのが,MySQLのレプリケーション機能である。 「レプリケーション」とは,対象物とまったく同じ物を製作する処理だ。同じような意味に「ミラー」があるが,意味するところは物理的なコピーである。「レプリケーション」は,論理的な複製であり,対象物の全体や一部といった範囲を限定できる点が異なる。 このような機能は,大がかりな準備と高度な技術が必要と考えている方も多いだろう。しかし,MySQLのレプリケーション機能は,非常に簡単に利用することができる。今回は,現行バージョンでも利用可能なレプリケーション機能を解説する。 Masterの更新がSlaveに反映される MySQLのレプリケーション機能は,MasterとSlaveに役割が分かれる(図1[拡大

    【MySQLウォッチ】第7回 大規模システムを支えるMySQLのレプリケーション機能:ITpro
  • MySQLで外部から接続するときにチェックする項目 - yummy-yummy

    サーバーにMySQLを入れたけど、外のマシン(ネットワーク)から接続できないよ!って時は以下の内容をチェックしてみる。 1. mysqldのuserテーブルの設定 以下コマンドでユーザの権限状態を確認。 $ mysql -u root mysql mysql> select user, host, password from user;権限が無い場合はGRANTコマンドで、外部からの接続を許可すること。 mysqlユーザの追加方法、GRANTの使用法等参照。 2.my.cnfのbind-address設定 my.confのbind-addressの設定を確認してみる。 $ vi /etc/mysql/my.cnf bind-address = 127.0.0.1 bind-address = (接続したいマシンのIPアドレス)追加したい接続先のIPを書いた「bind-address」を追加

    MySQLで外部から接続するときにチェックする項目 - yummy-yummy
  • 明日使える!?CakePHP Hack:SQLデバッグ表示をシンタックスハイライト | バシャログ。

    こんにちは、iPhoneをついに手に入れてテンションが一段落した?tanakaです。日は、CakePHPで開発するとき、ちょっと気分がよくなるHackをご紹介いたします。 CakePHPを使うときは、セッション1回で実行されたSQL文が一覧できるデバッグレベル2(Configure::write('debug', 2);)で開発することがあると思います。SQL文が一覧できるのは便利ですが、ちょっと味気ないと思いませんか?日は、そう思った私が、そのSQL文に色を付けるためにやってみた方法をご紹介いたします。cakeのコアの部分も少しだけ変更することになるので、取り扱いには十分ご注意ください。(CakePHP1.2を例に説明いたします) 目次 google-code-prettifyを配置 APP/app_controller.phpを修正 APP/views/layouts/defaul

    明日使える!?CakePHP Hack:SQLデバッグ表示をシンタックスハイライト | バシャログ。
  • MySQLのrootパスワードを忘れた時の対処法 - 絶品ゆどうふのタレ

    備忘録メモ。 某所のMySQLデータベースをバックアップ兼ねて、まるっとテストサイトに持ってきたわけです。 まるっと。 そしたらまぁ、当然というかなんというか、MySQLのrootパスワードが分からなくて、あんなことやこんなことをするのに困ってしまって、(´ε`;)ウーン…とかなってたので、rootパスワードをセットし直す方法を調べたのでメモ。 # /etc/init.d/mysql stop # mysqld_safe --skip-grant-tables & # mysql -u root とすると、パスワードなしでMySQLにログインできちゃう。 で。 > use mysql; > update user set password=PASSWORD('NewPassword') where User='root'; > flush privileges; として、パスワード変更がで

    MySQLのrootパスワードを忘れた時の対処法 - 絶品ゆどうふのタレ
  • チューニング - データベース ( MySQL ) - 自宅サーバーの構築 - 自宅サーバーでやってみよう!!

    MySQLのチューニング 更新日:2005/12/14 MySQLは初期設定ですと、メモリの割り当て等の環境設定が何もされていません。そこでサンプルで用意されているファイルを使って、MySQLをチューニングしてみましょう。 サンプルのファイルは、 [ /usr/share/mysql ] にあります。このディレクトリにある以下のファイルがサンプルです。

  • データベースを用いたセッションデータ管理について - LukeSilvia’s diary

    Web アプリケーションとは切っても切れないセッション機構。DB ベースでセッション管理を行なって得られた知見と、それを元に考察した結果をまとめてみます。 セッションデータの特性 DB で管理される他のデータに比べ、セッションデータはかなり特殊です。主な特徴は次のような感じ。 データが増加するのが速い 定期的な削除が必要 頻繁に更新される リクエスト毎に読みに行く必要がある このデータを読めないとアプリケーション全体にアクセスできない アクセス頻度が高いということです。あと、1つ目の特徴からセッションデータについては意識的に管理してやる必要があります。 現在の環境 アプリケーションの領域が少し特殊で、セッションデータがやたらたまります(ユーザ数何百万のサービスとかそういうのではないです)。 RDBMS MySQL 4.0.22 ストレージエンジン InnoDB レコード数 6千万 テータサ

    データベースを用いたセッションデータ管理について - LukeSilvia’s diary
  • やってはいけない!!MySQLに悲鳴をあげさせる10の方法

    いつも「MySQLを使うときはこうするべき」という観点から記事を書いているが、今日は逆に犯してはいけない過ちをリストアップしようと思う。 1. 全てのカラムにインデックスをつけるデータベース初心者がもっともやってしまいがちな間違いはコレではないだろうか。インデックスはいい。検索がとても速くなるから。しかし、それと引き替えにインデックスは更新するときにコストがかかるし、その分多くのディスクスペースを消費する。特に更新にかかるコストは時に甚大で、該当するインデックスのページがキャッシュ上にない場合はディスクからいったんそのページを読み込まなければいけない。ディスクアクセスは動作にとても時間がかかるので、インデックスが多数、例えば全てのカラムに付いていたりすると「あれ?固まったか?」というような状態になってしまうことがあるだろう。インデックスは必要なカラムにだけつけるようにテーブルを設計しよう。

    やってはいけない!!MySQLに悲鳴をあげさせる10の方法
  • Yahoo!オークションでのMySQL 冗長化技術

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちはオークション事業部プラットホーム技術のチャックです。 オークションでは一部サービスに RDBMSMySQL を使ってサービスをご提供させていただいております。 オークションでは多くのお客様よりアクセスを頂いておりますので、大量の更新、参照の処理速度に優れた MySQL を選択し、お客様にストレスなくサービスをご利用いただけるよう 日々業務に取り組まさせていただいております。 しかし、精密機器には故障がつきもので、サービス運用の観点からは 「機器が故障するのはしかたない、しかしそれをいかに早く復旧させるか」 といったことを念頭に入れております。 実際には、障害が起こってから復旧させるのではなく、障害が発生した場合に

    Yahoo!オークションでのMySQL 冗長化技術
  • MySQLで全文検索 - FULLTEXTインデックスの基礎知識|blog|たたみラボ

    tatamilab.jp

  • MySQL FULLTEXT Ngram : LIKE検索より数十倍高速な、お手軽 日本語全文検索 について|blog|たたみラボ

    tatamilab.jp

    wavement
    wavement 2009/03/25
    日本語全文検索
  • 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(),

  • なぜMySQLのサブクエリは遅いのか。

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

    なぜMySQLのサブクエリは遅いのか。
  • MySQLについて 伍 - インデックスについて

    通常、MySQLでは、selectコマンドを実行した場合、1レコード目から最終レコードまで、シーケンシャルに検索を行っていきます。 しかしながら、レコード数が大量になってくると、検索速度の問題が生じます。 そこで、より高速な検索を行うために、インデックスを作成するのが一般的です。 インデックスを作成することによって、検索速度は劇的に改善されます。 但し、MySQLでは、1,000件以下であればシーケンシャルに検索した方が速いとされています。 さて、インデックスとはどのようなものであるかというと、直感的には、図書の巻末に付されている索引(インデックス)と同じです。 索引語はアイウエオ順、あるいは、アルファベット順に並べられていて、各々の索引語には、その索引語が登場するページ数(位置情報)が示されています。 読者はその位置情報を頼りに、ページを捲って、目的のキーワードのある部分を読

    wavement
    wavement 2009/03/18
    インデックスについて
  • HowFriendFeedUsesMySqlToStoreSchemaLessData - FriendFeed では MySQL を使いどのようにスキーマレスのデータを保存しているのか

    HowFriendFeedUsesMySqlToStoreSchemaLessData - FriendFeed では MySQL を使いどのようにスキーマレスのデータを保存しているのか 目次 この記事について FriendFeed? では MySQL を使いどのようにスキーマレスのデータを保存しているのか 背景 概観 詳細 一貫性と原子性 性能 FriendFeed? では MySQL を使いどのようにスキーマレスのデータを保存しているのか この記事について "How FriendFeed? uses MySQL to store schema-less data" の日語訳です http://bret.appspot.com/entry/how-friendfeed-uses-mysql CC 2.5 でライセンスされています: http://creativecommons.org/

  • さらにMySQLを高速化する7つの方法

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

    さらにMySQLを高速化する7つの方法
  • 【CakePHP】SQLが頭に浮かぶなら迷わずqueryメソッドを使おう | バシャログ。

    こんにちは、inoueです。高校球児のようにちょっと連投。 CakePHPを使ってアプリケーション開発をしていると、「便利だなあ」と思う点と「面倒だなあ」と思う点があります。 特にDBアクセスまわりは、単純な1テーブルとのやりとりはフレームワークが楽をさせてくれるのですが、 複数テーブルをJOINしたり、MySQL関数を使いたいときは非常に面倒に思ってしまいます。 そんなとき、思い悩まずに済むのがモデルのqueryメソッドです。 使用方法 任意のSQLを記述し、それを引数として queryメソッドに渡せば、実行結果を配列で返してくれます。 例として、アクセスログを集計してページごとの日別アクセス数を求める場合はこんな感じ。 $sql = " SELECT blog_id, author_id, entry_id,"; $sql .= " DATE_FORMAT(access_datetim

    【CakePHP】SQLが頭に浮かぶなら迷わずqueryメソッドを使おう | バシャログ。
  • 漢(オトコ)のコンピュータ道: MySQLを高速化する10の方法

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

    漢(オトコ)のコンピュータ道: MySQLを高速化する10の方法
  • パコパコママ期間限定スペシャルー無料お試し開始!

    パコパコママ期間限定スペシャルー無料お試し開始!