タグ

mysqlに関するocsのブックマーク (57)

  • MySQL5.5.3-m3のDATETIME型のバグ。あとMySQLの DATETIME型は本当に遅いのか検証してみた - 2010-04-30 - 小野マトペの業務日誌(アニメ制作してない篇)

    バグの話 近々ふぁぼったーDBのInnoDB化を企てているので、それに伴いMySQL5.0.67(Tritonn)から、先日リリースされたばかりのMySQL5.5.3-m3に乗り換えてみた。RC(リリース候補)版ということで、GA版とほぼ変わらない品質と聞いたので、割と軽い気持ちでインストールしたんだけど、いきなりバグにハマった。 バグとは、DATETIME, TIMESTAMP, DATE, TIME型と文字列定数との結合でインデックスが使われない、というもの。 以下のような、date(DATE型)の結合しかしていないクエリでも、dateインデックスが使われず昇順フルテーブルスキャンされ、20秒くらい掛かった。 select date from STATUS force index(date) where date='2010-01-19' limit 10; この現象は、5.5.3,5

    MySQL5.5.3-m3のDATETIME型のバグ。あとMySQLの DATETIME型は本当に遅いのか検証してみた - 2010-04-30 - 小野マトペの業務日誌(アニメ制作してない篇)
    ocs
    ocs 2010/05/01
  • MySQL 5.1のmysqldumpslowで快速チューニング - SH2の日記

    MySQL 5.1のmysqldumpslowを使うとチューニングが楽になる!という話題です。 mysqldumpslowはもともとMySQLに付属しているツールで、スロークエリログを集計してくれるものです。これ自体はMySQL 5.1で特に変わったところはありませんが、スロークエリログ体の方が機能強化されているため、組み合わせるとなかなか便利になっています。MySQL 5.1におけるスロークエリログの主な機能強化は以下の三点です。 long_query_timeに1秒未満の値を設定できるようになった。 出力先を設定できるようになった。 これらの設定をオンラインで変更できるようになった。 これでどうなるかというと、MySQLの性能分析をしたいと思ったときに、サーバを止めずにその場で mysql> set global slow_query_log = 1; mysql> set glob

    MySQL 5.1のmysqldumpslowで快速チューニング - SH2の日記
  • MySQL 5.1.42リリース - SH2の日記

    出ました。元旦リリースです。あけましておめでとうございます。 今回はバグ修正が48件あり、そのうちレプリケーションに関するものが4件、パーティショニングに関するものが3件となっています。同梱されているInnoDB Pluginは1.0.6にバージョンアップしており、こちらは1.0.5に引き続きRC(リリース候補)版となっています。InnoDB Pluginはバグ修正のみが行われており、前回のような新機能の追加は無いようです。 MySQL 5.0のアクティブライフサイクル期間が2009年末で終了したということで、今日は半年前に作ったバグ曲線のグラフを描き直してみました。 MySQL 5.1は相変わらずまっすぐ伸びてますね。ちなみに私はこのグラフを見て「まだこんなにバグがあるのか」ではなくて「きちんとした品質管理体制が維持されている」と考えます。 それでは、今年もよろしくお願いいたします。

    MySQL 5.1.42リリース - SH2の日記
    ocs
    ocs 2010/01/05
  • MySQLを救え! » 顧客にツケが回ってくる

    オラクル社が MySQLをサン社の一部として買収した場合、データベースの顧客はその割をうことになります。 2009年4月にオラクル社は、サン社の買収に同意した旨発表しました。サン社は前年MySQLを買収したため、これはクローズドソース データベースのマーケットリーダーであるオラクル社が、最も人気のあるオープンソース データベースであるMySQLを獲得することを意味します。 オラクル社がこれをベースに MySQLを買収すれば、オープンソース プロジェクトに対してお金で買うことのできる限りの支配力を MySQL に対して獲得することになります。実際、オープンソースプロジェクトLinux、Apache等)のほとんどについては、競合者には10分の1の影響力を獲得するチャンスすらもありません。けれども MySQLの成功はつねに、その背後にあってそれを開発し、獲得し、販売する企業かかっていました。

    ocs
    ocs 2010/01/01
  • Monty が MySQL ユーザに支援要請 - sakaikの日々雑感~(T)編

    オラクルのサン買収に関し、MySQLのオリジナル開発者の Monty こと Michael Widenius 氏が、MySQLユーザに向け、支援を要請するメッセージを出しました。 http://monty-says.blogspot.com/2009/12/help-saving-mysql.html (1)これまでに起こったこと(要約) (2)オラクルが約束「しなかったもの」は何か (3)これまでのオラクルの、オープンソースへのふるまい (4)この情報を広めて欲しい (5)EUへの email のサンプル が書かれています。 オラクルによるサン買収が発表された後、これまでにも何度となくメッセージを発信してきた Monty ですが、今回のメッセージはこれまでになく強いメッセージであるという印象を受けました。 以下簡単ですがまとめてみます。あくまで参考程度にしていただくことにして、正確なこと

    Monty が MySQL ユーザに支援要請 - sakaikの日々雑感~(T)編
    ocs
    ocs 2009/12/13
  • 実録、ほぼ無停止なMySQLのフェイルオーバ (動画もあるよ) - (ひ)メモ

    レプリケーションしてるMySQLで、マスタやスレーブが障害停止した場合のリカバリプラン でも掲げたゴールである、「マスタが落ちてもぐーすか寝ていられるようにしたい」がほぼできたので、ほとんどサービスが停止することなく、フェイルオーバする様をスクリーンキャストに収めました。 埋め込みプレイヤーだと、小さくてわからないと思うので、リンク直接でみてください。 http://www.irori.org/pub/mysql-mm.mov 登場するホスト 登場するホストは2台、db901db902です。 最初は、db901が更新系クエリを受けるプライマリでdb900の浮動IPアドレスを持っています。 画面分割 画面は5分割しています。 左上 = 「select sysdate(),@@server_id」をdb900に対して(sleep 1しながら)延々と実行しまくりんぐ 右上 = ping -n

    実録、ほぼ無停止なMySQLのフェイルオーバ (動画もあるよ) - (ひ)メモ
    ocs
    ocs 2009/11/11
  • MySQL Clusterが苦手とするJOINを如何にして克服するべきか。

    シェアードナッシング型の負荷分散機能を持ち、なおかつ同期レプリケーションによるHA機能まで備えたMySQL Cluster最大の弱点といえば、JOINの遅さであろう。MySQL ClusterのJOINは偽りなく遅い。JOINを多用するアプリケーションでMySQL Clusterを利用するのはある意味マゾヒスティックな行為であると言えよう。何故MySQL ClusterはJOINが遅いのか?それはMySQL Clusterが分散データベースだからである。 ご存じの通り、MySQLにおけるJOINのアルゴリズムにはNested Loopしかない。他のストレージエンジンを利用していればそれでも十分実用に耐えうるぐらい高速なのだが、MySQL Clusterの場合はそうはいかない。JOINでは自ずとストレージエンジンからデータをフェッチする回数が増えるが、MySQL Clusterの場合レコード

    MySQL Clusterが苦手とするJOINを如何にして克服するべきか。
    ocs
    ocs 2009/11/04
  • GPLが適用されているソフトウェア=MySQLのパッチをBSDライセンスでリリースする。

    Googleがリリースしている有名なMySQL 5.0用パッチは、なんとBSDライセンスで提供されている。MySQLは周知の通りGPLでリリースされているが、GPLソフトウェアはその性質上、改変するとそのソフトウェアもGPLでリリースしなければいけない。だったら何故そのパッチをBSDライセンスで提供することが出来るのか?!ホントにそんなこと出来るのか?!Googleは何か間違ってるんじゃないか?!などと疑問に思われることだろう。 結論から言うと、Googleは何らライセンスの間違いを犯しているわけではなく、GPLソフトウェアにGPL互換のライセンスでパッチを書くことが出来るのは、GPLの条文そのものにしっかりと書いてあるのである。 以上の必要条件は全体としての改変された著作物に適用される。著作物の一部が『プログラム』から派生したものではないと確認でき、それら自身別の独立 した著作物であると

    GPLが適用されているソフトウェア=MySQLのパッチをBSDライセンスでリリースする。
    ocs
    ocs 2009/10/31
  • 彼氏がMyISAM使ってた。別れたい… - kazuhoのメモ置き場

    追記: マジメな比較はこちら:Open database life: MyISAMとInnoDBのどちらを使うべきか MyISAMだとPostgreSQLと並べられた時なんか恥ずかしいww 下向いちゃうしww ウェブサイトにはせめてInnoDB使って欲しい・・・ 勉強会とかで発表されたら・・・・もう最悪ww せめて普通にトランザクションやMVCCぐらいは対応して欲しい。 常識的に考えて欲しいだけなんです! MyISAMでテーブルロックしちゃった時の遅さとか分かる? あのね?たとえばピーク時10〜20並行ぐらいで書込みとか行くでしょ? それぞれ別の接続で来るわけじゃない? みんな普通にグループコミットやアシッドネス期待してるわけでしょ? MyISAMでテーブル壊れてリペアしてたら大恥かくでしょうがww じゃあ MyISAM はどういう用途に適しているのか。待て! 次号!*1 参考: 彼氏が軽

    彼氏がMyISAM使ってた。別れたい… - kazuhoのメモ置き場
  • 松信さんの奥さんのエントリがすごい - sakaikの日々雑感~(T)編

    気づいたら twitter で MyISAM vs InnoDB の話題が盛り上がっていました。その流れで、奥さんの愛のある MyISAM 礼賛(?)の記事: ○彼氏がMyISAM使ってた。別れたい… http://d.hatena.ne.jp/kazuhooku/20091027/1256638805 勢いがあります。こういう文章をさくっと数分で書いてしまうセンスが羨ましい。 末尾に「待て! 次号」とあり、その「次号」を松信さんがこれまた数分でさくっと。 すごい。 ○彼女が・・・ じゃなかった、、、 ○MyISAMとInnoDBのどちらを使うべきか http://opendatabaselife.blogspot.com/2009/10/myisaminnodb.html なんとなくみんなのアタマの中にあった「暗黙知」的なものではありますが、文字になってまとまっているものがほとんどなかっ

    松信さんの奥さんのエントリがすごい - sakaikの日々雑感~(T)編
    ocs
    ocs 2009/10/27
  • MySQL Cluster進化の歴史

    MySQL Cluster開発者の一人であるFrazer Clement氏がその歴史についてとても興味深いエントリを自身のブログで綴っているのだが、いかんせん英語の長文で日人には辛いかも知れないので今日はその日語訳を皆さんにも紹介しようと思う。進化の歴史とその結果生じた構造を知ることにより、MySQL Clusterの仕組みに興味を持って頂けると幸いである。(わかり辛いところにはところどころ訳者による注釈を入れてある。ただし翻訳は結構大ざっぱなので、英語が達者であれば細かいニュアンスなどはオリジナルのエントリを参照して頂きたい。なお、日語訳をすることに関してはFrazer氏の了解を得ているのであしからず。) NDBMySQL Clusterの略称。元々はNetwork DBという名称であった。)の開発の正確な歴史について、きっと他の誰かのほうが上手く解説できると思うのだが、限られて

    MySQL Cluster進化の歴史
  • シングルマスタ/マルチスレーブ構成に興味がない理由 - kazuhoのメモ置き場

    システム全体で必要な書き込みパフォーマンスが、RDBMSノード1基の IOPS の W% の場合、シングルマスタ+スレーブn台構成のシステム全体のパフォーマンスは、 書き込みパフォーマンス: W 読み込みパフォーマンス: R=(1-w)*(n+1) になる。この n=R/(1-w)-1 って w が増加するとスレーブ増設のメリットが加速度的に失われていく点がイヤ。 例えば、システム全体で要求される書き込みパフォーマンスが W=0.3 で、読み込みパフォーマンスが 3 ならば、シングルマスタ/マルチスレーブ構成で必要なノード数は5台。マルチマスタ構成を採った場合でも理想値は4台なので、そう遜色があるわけではない。 しかし、仮に必要なパフォーマンスが2倍 (W=0.6, R=6) になると、必要ノード数はマルチマスタ構成での8台に対し、シングルマスタ/マルチスレーブ構成では16台と、一気にコス

    シングルマスタ/マルチスレーブ構成に興味がない理由 - kazuhoのメモ置き場
    ocs
    ocs 2009/08/11
    ※欄も含めて。
  • MySQL 5.1.36リリース - SH2の日記

    出ました。MySQL 5.1.36には機能追加・変更が4件、バグ修正が50件あります。このうちサーバがクラッシュするバグが11件、またレプリケーションに関するImportant Changeが2件出ており、いつもより多い印象を受けます。 今回のポイントはBug #44352です。cp932およびsjisの環境で、upper()、lower()ファンクションが誤動作するというバグです。 mysql> create table t (c1 varchar(10)) character set cp932; Query OK, 0 rows affected (0.02 sec) mysql> insert into t (c1) values ('ビタミン'); Query OK, 1 row affected (0.00 sec) mysql> select upper(c1) from t

    MySQL 5.1.36リリース - SH2の日記
    ocs
    ocs 2009/07/02
    このときのMLは久々に燃える展開だった
  • Kazuho@Cybozu Labs: MySQL のトリガーの実用性を確認するために InnoDB の SELECT COUNT(*) を高速化してみる

    最近 RDBMS のトリガーを色々書いているのですが、知らない人にトリガーが何かいちいち説明するのに簡単な例はないかな、というのと、MySQL の処理速度はトリガーによってどの程度変化するか、ということを確認するために、以下のような実験を行ってみました。 InnoDB はしばしば、「SELECT COUNT(*) が遅い!」と批判されます。では、トリガーを使って行数を別のテーブルにキャッシュすればいいのではないでしょうか? 以下のように、極めて小さなテーブル t1 を作り、その行数を t1_cnt にキャッシュしてみることにします。 mysql> create table t1 ( ->   id int unsigned not null primary key auto_increment, ->   v int unsigned not null -> ) engine=innodb

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

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

    データベースを用いたセッションデータ管理について - LukeSilvia’s diary
  • 限界までMySQLを使い尽くす!!

    どこまで出来るか?!やれるところまでやってやるぜ!!と、威勢が良いのは若い間だけの話。オトナのオトコは、攻めるときはとことん攻めるが自らの限界もわきまえて賢く振る舞うのがスマートってものである。というわけで、今日はMySQLのいろいろな限界についてまとめてみる。皆さんも是非MySQLの限界を知り、MySQLをもっとスマートに使って頂きたい。 SQL文の最大長 MySQLサーバーが実行出来るSQL文の最大長は、max_allowed_packetシステム変数で表される。max_allowed_packetの最大値は1GBである。max_allowed_packetの値はセッションごとにも設定可能なので、デフォルトではそこそこの値(16MBなど)に設定しておいて、必要に応じて大きな対を使うと良いだろう。 データベースの個数 データベースオブジェクトの個数に制限はない。データベースオブジェクトは

    限界までMySQLを使い尽くす!!
    ocs
    ocs 2009/05/20
  • MySQLの cp932環境でのUPPER()関数の不具合 - sakaikの日々雑感~(T)編

    MySQLユーザ会(MyNA)のメーリングリスト(http://www.mysql.gr.jp/ml.html)で、日語の文字列検索が期待した動作をしないという質問がありました。なにか惹かれるものがあったのか、私も含め、滅多にMLに技術的なことを投稿しない顔ぶれが反応していてわくわくしました(笑)。 何人もの、数回にわたるやりとりの後に実際のSQL文を見せてもらうと、、、、 UPPER(col_name) LIKE "%ビタミン%" のような検索をしていることが発覚。 ここ!ここですよ!一番大事な情報は。 「UPPERして検索したら」なんてやりとりの中で一度も出てなかったじゃないですかぁ〜! ということで立岡さんが早速 MySQL開発チームのバグトラックに報告してくれました。パッチ付き。素早さに感動しました。(http://bugs.mysql.com/bug.php?id=4435

    MySQLの cp932環境でのUPPER()関数の不具合 - sakaikの日々雑感~(T)編
    ocs
    ocs 2009/04/21
  • なぜMySQLのサブクエリは遅いのか。

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

    なぜMySQLのサブクエリは遅いのか。
    ocs
    ocs 2009/03/25
    丁寧な解説。
  • Connector/J 5.1とServer Side Prepared Statement - mir the developer

    ここ数日「MySQL + Connector/J(JDBCドライバ) + プリペアードステートメント」の話題がちらほら出ています。正確に把握はしていないですがSQLインジェクション対策→PreparedStatementという流れできた話のようです。 徳丸浩の日記 - JavaMySQLの組み合わせでUnicodeのU+00A5を用いたSQLインジェクションの可能性 へぼへぼCTO日記 - useServerPrepStmtsを使うのが根解決だとはおもう。けど…? id:kazuhookuのメモ置き場 - MySQL+Java でサーバサイドプリペアードステートメントを使うべきで「ない」理由 自分は元Connector/J開発メンバ(※インターン生として)でもありとても気になる話題なので、Connector/Jのソース解析も含めた説明をここで行いたいと思う。 プリペアードステートメント

    Connector/J 5.1とServer Side Prepared Statement - mir the developer
    ocs
    ocs 2008/12/24
  • へぼへぼCTO日記 - useServerPrepStmtsを使うのが根本解決だとはおもう。けど…?

    UnicodeのU+00A5問題 JavaMySQLの組み合わせでUnicodeのU+00A5を用いたSQLインジェクションの可能性 なるほど。この問題は初耳だったので驚いた。 しかも、PreparedStatementを使っても解決されないという。この部分に非常に驚いたのでどういうことなのか少し調べてみた。 PreparedStatementとは? mysqlにおける話としてはPrepared Statement (訳)がとてもわかりやすい。 なかでも重要なのは以下の部分だ。 PerlJava のユーザはかなり長い間prepared statementを使って きました。しかし、これらはクライアント側のprepared statementでした。 クライアント側のprepared statementは同じようなセキュリティの恩恵 をもたらしますが、性能向上には至りません。でも心配

    ocs
    ocs 2008/12/24