タグ

mysqlに関するIMAKADOのブックマーク (58)

  • Kazuho@Cybozu Labs: Pacific という名前の分散ストレージを作り始めた件

    大規模なウェブアプリケーションのボトルネックがデータベースであるという点については、多くの同意が得られるところだと思います。解決策としては、同じ種類のデータを複数の RDBMS に保存する「sharding」 (別名:アプリケーションレベルパーティショニング/レベル2分散注1) が一般的ですが、最近では、分散キーバリューストア (分散 KVS) を使おうとする試みもみられるようになってきています。 分散 KVS が RDBMS sharding に対して優れている要素としては、事前の分割設計が不要で、動的なノード追加(とそれにともなう負荷の再分散)が容易、といった点が挙げられると思います。一方で、Kai や Kumofs のような最近の実装では eventually consistent でこそ無くなってきているものの、ハッシュベースの分散 KVS は、レンジクエリができなかったり (例:

  • SDC SQUARE April 2009

    昨年12月8日、MySQL5.1がリリースされました。一般提供開始後わずか10日で25万ダウンロードを記録し、デベロッパーの関心がひときわ高い製品です。今回、MySQLのパフォーマンスチューニングのポイントを、サン・マイクロシステムズ株式会社の島拓也さんと奥野幹也さんにうかがいました。(取材:SDC編集局) 編集局:現在のお仕事について教えてください。 奥野さん:私はMySQLの有償版のサポート業務に携わっています。お客様からいただくいろいろな問い合わせ、たとえば、MySQLの使い方や仕様・動作の細かい質問にお答えしています。トラブルシューティングやパフォーマンスチューニングなども含まれます。 島さん:私はx86サーバの販売を担当しています。x86サーバの差別化要因としてMySQLなどの上位のアプリケーションを含めたソリューションのご提案が主な仕事の内容となります。 編集局:サポートチーム

  • http://www.mysqlpracticewiki.com/index.php/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8

  • MySQLのEXPLAINを徹底解説!!

    以前、MySQLを高速化する10の方法という投稿で「EXPLAINの見方についてはいずれ解説しようと思う」と書いてしまったので、今日はその公約?を果たそうと思う。 MySQLのチューニングで最も大切なのは、クエリとスキーマの最適化である。スキーマの設計は一度決めてしまうとそのテーブルを利用する全てのクエリに影響してしまうためなかなか変更することは出来ないが、クエリはそのクエリだけを書き直せば良いので変更の敷居は低い。そして遅いクエリをなくすことは、性能を大幅に向上させるための最も有効な手段である。従って、アプリケーションの性能を向上させたいなら、まず最初にクエリのチューニングを検討するべきなのである。 最適化するべきクエリはスロークエリログやクエリアナライザで見付けられるが、ではそのようなクエリが見つかった場合にはどのように最適化すればいいのか?そのためにはまず現在どのようにクエリが実行さ

    MySQLのEXPLAINを徹底解説!!
  • 外部ホストからMySQLへの接続を許可する。 (Re::Monologue)

    つまらないことだけどちょっとはまったので覚え書き。 MySQLで外部ホストからの接続を許可する場合、「localhost」用の権限と「外部用」の権限の二種類をGRANTで制限する必要がある。 # mysql -u root -p mysql> GRANT ALL PRIVILEGES ON *.* TO testuser@'%' IDENTIFIED BY 'password'; Query OK, 0 rows affected (0.00 sec) mysql> GRANT ALL PRIVILEGES ON *.* TO testuser@localhost IDENTIFIED BY 'password'; Query OK, 0 rows affected (0.00 sec) mysql> use mysql; Database changed mysql> select ho

    IMAKADO
    IMAKADO 2009/03/30
    MySQLで外部ホストからの接続を許可する
  • Yahoo!オークションでのMySQL 冗長化技術

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

    Yahoo!オークションでのMySQL 冗長化技術
  • なぜMySQLのサブクエリは遅いのか。

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

    なぜMySQLのサブクエリは遅いのか。
  • へぼへぼCTO日記 - libmysqlclientを使うプログラムはset namesをutf8であっても使ってはいけない

    mysql_enable_utf8 => 1 で DBIC::UTF8Columns 要らなくなるっぽいComments 上記の記事のブクマに set namesを直接実行しちゃうのはutf8であってもコンパイルオプションによっては問題起こるのでお勧めできない http://b.hatena.ne.jp/nihen/20090204#bookmark-11950629 ってことを書かせてもらったんだけど、この最後のset namesはutf8でも使っちゃダメという話を軽く説明します。 まずは、基的なことはMySQL5開拓団 - 日語処理の鉄則 / KLab株式会社を読んでください。mysqlの日語処理についてのドキュメントとしては、私は今一番信頼できるドキュメントだと思っています。 さて、上記のページのを、勝手ながらすべて引用させていただくことにする。(手抜きもいいところだな) ■

  • MySQLレプリケーションを安全に利用するための10のテクニック

    MySQLのレプリケーションは非常に簡単に使える割には応用の幅が広いので非常に人気のある機能の一つである。レプリケーションの応用分野は例えば、 バックアップ 参照系の負荷分散 HA(高可用性) ディザスタリカバリ(サイト間レプリケーション) BI(レポーティングetc) という風にとても多くのバリエーションがある。このブログを読んで頂いている皆さんの中にもレプリケーションを使っている方は多いのではないだろうか。ご覧の通りMySQLのレプリケーション機能はミッションクリティカル分野でも利用されているが、レプリケーションの使い方が適切でないとシステムの安定稼働に支障を来してしまってDBAやシステム管理者の肉体的、精神的負担が増大してしまう。逆にレプリケーションを堅牢に運用することが出来ればマクラを高くして眠れるというものだ。レプリケーションはMySQLの代表的な機能であるので、レプリケーション

    MySQLレプリケーションを安全に利用するための10のテクニック
  • URLを扱うテーブルを作るときにどうすべきか - 金利0無利息キャッシング – キャッシングできます - subtech

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    URLを扱うテーブルを作るときにどうすべきか - 金利0無利息キャッシング – キャッシングできます - subtech
    IMAKADO
    IMAKADO 2009/03/16
    単純に長さを増やす/別カラム作る
  • さらにMySQLを高速化する7つの方法

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

    さらにMySQLを高速化する7つの方法
  • 横のマーク - MySQLで、ある日付範囲に誕生日が入る人を抽出する方法

    久々更新の小ネタです。  birthdayに”yyyy-mm-dd”形式で誕生日が入っている場合、 例えば、6月1日~6月30日までの誕生日の人を抽出するには SELECT name, birthday FROM table_name WHERE 601 <= REPLACE(RIGHT(birthday, 5), '-', '') AND REPLACE(RIGHT(birthday, 5), '-', '') <= 630; とする。 REPLACEした文字列は勝手に数値に変換されるようだ。 DBIx::Classを使用する場合は、 my $month = 6; my $day_from = 1; my $day_to = 30 $day_from += $month * 100; $day_to += $month * 100; $rs = $rs->search_literal

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

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

    漢(オトコ)のコンピュータ道: MySQLを高速化する10の方法
    IMAKADO
    IMAKADO 2009/02/23
    目的に合ったストレージ/エンジンベンチマーク
  • kndb.jp

    This domain may be for sale!

    IMAKADO
    IMAKADO 2009/02/17
    文字コードの確認 show variables like "char%";
  • Google Code Archive - Long-term storage for Google Code Project Hosting.

    Code Archive Skip to content Google About Google Privacy Terms

  • DBD::mysqlのmysql_auto_reconnectが真だとDB再接続時にDBICのon_connect_doが実行されない件 - Unknown::Programming

    ハマったメモ。 さてまた今回も若干適当な記事だけども、メモということでお許し願いたい。 ってか誰も言及してないっぽいんだけどもしかしてこの現象うちだけ? とにかくタイトルの通りで、検証時の各モジュールのVERSIONは以下の通り。 DBD::mysql-v4.005 DBIx::Class-v0.08100 前回のDBD::mysqlでSegmentation faultの件は無事解決したものの、今度はDB再接続時に文字化け発動でゲンナリしてました。 でログとか見てるとどうもDBICのon_connect_doで指定しているSET NAMES UTF8がDB再接続時に動いてないことが判明。 myapp_server.plだとちゃんとSET NAMES呼ばれるんだけどmod_perlだと何故か呼ばれない。 ってことでmod_perlに関係有りそうな部分をひたすら調べていたところ、mysql_

    DBD::mysqlのmysql_auto_reconnectが真だとDB再接続時にDBICのon_connect_doが実行されない件 - Unknown::Programming
    IMAKADO
    IMAKADO 2009/02/14
    on_connect_doが実行されない件
  • 書籍・雑誌記事 - KLablabWiki

    このサイトはKLab株式会社が開発したソフトウェアやノウハウ、実験的なサービスを公開していきます。 RSS Feed

  • Mac OSX向けのMySQLフロントエンド·YourSQL MOONGIFT

    MySQLはWebアプリケーションの台頭もあって、良く利用されるデータベースとなっている。オープンソース・ソフトウェアもMySQLを使ったものが他のデータベースに比べ最も多いと感じている。 テーブル構造エディタ そんなMySQLのデータ管理を助けてくれるのがこのソフトウェアだ。 今回紹介するオープンソース・ソフトウェアはYourSQLMySQLフロントエンドだ。 YourSQLMac OSX向けのソフトウェアで、多数のデータベースサーバへの接続をサポートしている。ユーザ名とパスワードを登録し、データベースの一覧/テーブルの一覧を取得する。接続する際に文字コードを指定できるのだが、日語は表示が化けてしまった。 フリーのSQL実行ウィンドウ テーブル構造の表示と変更、データの閲覧と修正、検索、インポートと言った機能がある。さらにフリーでSQLを実行することや、ダンプすることもできる。カラ

    Mac OSX向けのMySQLフロントエンド·YourSQL MOONGIFT
  • MOONGIFT: » MySQLの状態をブラウジング「MySQL Server Monitor」:オープンソースを毎日紹介

    小〜中規模のWeb開発でMySQLが使われる機会は多い。常に監視するのは大変だろうが、それでも現状どのようになっているのかモニタリングしておくのは大事だ。だが、ターミナルで接続してインストールするソフトウェアは環境によって利用できないこともある。 複数のサーバを見ることが可能 そこで、ブラウザベースで監視できるソフトウェアを紹介しよう。これならばどのような環境でもすぐに利用できる。 今回紹介するオープンソース・ソフトウェアはMySQL Server Monitor、MySQLモニタリングソフトウェアだ。 MySQL Server Monitorは複数のMySQLサーバを同時に監視できるソフトウェアで、画面上部のタブを使って切り替えることができる。サーバのトラフィック、クエリー数、クエリーキャッシュについて知ることができる。 取得できるデータの一覧 PHPベースで作られているので、レンタルサ

    MOONGIFT: » MySQLの状態をブラウジング「MySQL Server Monitor」:オープンソースを毎日紹介
  • MOONGIFT: » MySQLのドキュメント作成「mysqldoc」:オープンソースを毎日紹介

    Javadoc、PHPDocなど、プログラミングソースからドキュメントを生成するソリューションは幾つか存在する。きちんとコメントを書けば、それがドキュメントになってくれるので、手間が減りつつもプログラムの品質は向上すると一石二鳥だ。 出力中 そして同様の手法をMySQLにも適用しようと言うのがこのソフトウェアだ。 今回紹介するオープンソース・ソフトウェアはmysqldoc、MySQLの構造ドキュメント出力ソフトウェアだ。 mysqldocはターミナル上で利用するソフトウェアで、指定したデータベース(または全て)のテーブルの構造を一覧にしてくれる。カラム名、テーブルタイプ、型、デフォルト値、詳細な説明を一覧にする。 HTMLでの出力例 テーブルのステータス等も出力される。結果はテキスト(デフォルト)、HTMLまたはXMLで出力が可能だ。SSLを使った接続への対応や、トリガーやユーザファンクシ

    MOONGIFT: » MySQLのドキュメント作成「mysqldoc」:オープンソースを毎日紹介