タグ

mysqlに関するperezvonのブックマーク (173)

  • Kazuho@Cybozu Labs: Mycached: memcached protocol support for MySQL

    It is a well-known fact that the bottlenecks of MySQL does not exist in its storage engines, but rather in the core, for example, its parser and execution planner.  Last weekend I started to wonder how fast MySQL could be if those bottlenecks were skipped.  Not being able to stop my curiousity, I started  adding memcached proctol support to MySQL as a UDF.  And that is Mycached. From what I unders

  • NoSQLの成功は1:10問題にかかっている:Kenn's Clairvoyance

    ここ2-3年ほど、いわゆる非SQL系データベースがホットな話題になってきています。このムーブメントを総称して「NoSQL (Not-only SQL)」と呼ばれることが多いようです。まるでSQLを否定しているかのような誤解を招きやすい用語ですが、かといってキー・バリュー型データストアや列指向DBを総称できる他の呼び方もないので、このエントリではNoSQLという用語を使うことにします。 OracleMySQLなどのSQLデータベースが成熟していく一方で、SQLデータベースを特徴づける弱点である柔軟性のなさ、堅牢さと引き換えに犠牲になった更新性能の低さ、スケールアウトの難しさなどから、「何でもかんでもRDB」から「目的に応じた永続化」が模索される流れになってきました。 時を同じくして、キャッシュサーバの世界でも、MemcachedのもつシンプルなAPIの使いやすさが評価される一方、LRUによ

    NoSQLの成功は1:10問題にかかっている:Kenn's Clairvoyance
  • HandlerSocketソースコード公開しました | BLOG - DeNA Engineering

    はじめまして、樋口と申します。 先日のDeNA Technology Seminar #2でお話させていただきました HandlerSocket Plugin for MySQL のソースコードを公開しました。 HandlerSocketとは? 簡単に言うと、MySQLデータベースへのアクセスを高速化するためのプラグインです。MySQLSQLパーザをすっ飛ばし、ネットワーク通信とマルチスレッド処理周辺を置き換えることによって、InnoDB等のデータベースエンジンの性能を限界まで引き出します。 このHandlerSocketですが、すでにモバゲータウンにて実際に運用しています。従来MySQLとmemcachedの構成で運用していた箇所を、HanderSocketを組み込んだMySQLだけの構成に置き換えました。その結果、MySQLサーバの負荷軽減、memcachedの負荷軽減、ネットワーク

    HandlerSocketソースコード公開しました | BLOG - DeNA Engineering
  • Blob Storage in Innodb

    I’m running in this misconception second time in a week or so, so it is time to blog about it. How blobs are stored in Innodb ? This depends on 3 factors. Blob size; Full row size and Innodb row format. But before we look into how BLOBs are really stored lets see what misconception is about. A lot of people seems to think for standard (“Antelope”) format first 768 bytes are stored in the row itsel

    perezvon
    perezvon 2010/07/24
    InnoDB, InnoDB pluginのBLOBについて
  • MySQLでサービス停止のないALTER TABLEの検討 - SH2の日記

    MySQLでテーブルへのカラム追加、インデックス追加やテーブルの再編成などを行うと、その間テーブルに共有ロックがかかってしまいます。そのためこれらのメンテナンス処理は、通常利用者の少ない深夜早朝帯にサービスを止めて実施する必要があります。日はそれを無停止、オンラインのままでできないかという話題です。 基的なアイデア メンテナンス対象の元テーブルをコピーして、作業用の仮テーブルを作ります 仮テーブルに対して、カラム追加などの変更を加えます その間、元テーブルに対して行われる更新処理について差分を記録しておきます 仮テーブルの変更が終わったら、記録しておいた差分データを仮テーブルに反映します 差分データの反映が終わったら、元テーブルと仮テーブルを入れ替えます これと似たようなことを考えた方は結構いらっしゃるのではないでしょうか。ただ、言うは易し、行うは難しです。整合性がきちんと取れるかどう

    MySQLでサービス停止のないALTER TABLEの検討 - SH2の日記
    perezvon
    perezvon 2010/07/05
    oak-online-alter-table
  • インフラ系エンジニア勉強会 "hbstudy"でMaatKitについて発表してきました - marqs blog

    株式会社ハートビーツさんが主催されているインフラエンジニア勉強会でMaatKitというMySQL管理用の便利ツールに関する発表をしてきました。日ではまだまだ使われている方が少ないようですが、とても便利なツールなので、この発表を機会にもっとユーザが増えるといいなーと思っています。 http://www.maatkit.org/

    インフラ系エンジニア勉強会 "hbstudy"でMaatKitについて発表してきました - marqs blog
    perezvon
    perezvon 2010/05/18
    MySQL管理ツールMaatKit
  • MySQL 5.1.46リリース InnoDB Pluginが正式版に - SH2の日記

    出ました。今回は機能追加が1件、バグ修正が55件あります。バグ修正のうちセキュリティに関するものが1件、パーティショニングに関するものが5件、レプリケーションに関するものが7件となっています。 MySQL 5.1.38から体に付属するようになったInnoDB Pluginですが、バージョンが1.0.7に上がりRCからGA(Generally Available、正式版)となりました。ついに正式リリースです。というわけで何度か繰り返している話題ですが、今回はInnoDB Pluginについて再度おさらいをしておきたいと思います。 InnoDB Pluginの使い方 MySQL 5.1.38以降であればInnoDB Pluginを使うように設定するのは簡単です。/etc/my.cnfに以下の設定を書き加えることでInnoDB Pluginが有効化されます。 ignore-builtin-in

    MySQL 5.1.46リリース InnoDB Pluginが正式版に - SH2の日記
  • MySQL InnoDBのネクストキーロック おさらい - SH2の日記

    MySQLのInnoDBストレージエンジンは行ロックをサポートしています。しかしOracleと同じ感覚でアプリケーションを作っていると、思わぬところでデッドロックに出くわすことがあります。これはInnoDBのロック範囲がOracleよりも微妙に広いためです。 実際の例で確認してみましょう。 mysql> select * from t; +----+------+ | c1 | c2 | +----+------+ | 10 | a | | 15 | a | | 20 | a | | 25 | a | | 30 | a | | 35 | a | | 40 | a | | 45 | a | | 50 | a | +----+------+c1列は主キーになっています。1つめのセッションで以下のSQLを実行します。 mysql> set tx_isolation = 'repeatable-r

    MySQL InnoDBのネクストキーロック おさらい - SH2の日記
    perezvon
    perezvon 2010/02/16
    InnoDBのNext key lockとトランザクション分離レベル, binlog-formatについて
  • Detailed review of Tokutek storage engine

    (Note: Review was done as part of our consulting practice, but is totally independent and fully reflects our opinion) I had a chance to take look TokuDB (the name of the Tokutek storage engine), and run some benchmarks. Tuning of TokuDB is much easier than InnoDB, there only few parameters to change, and actually out-of-box things running pretty well. There are some rumors circulating that TokuDB

    Detailed review of Tokutek storage engine
    perezvon
    perezvon 2010/01/31
    TokuDB is a disk-based, read-write transactional storage engine that is based on special “fractal tree indexes”.
  • メモ: InnoDB Pluginのバグ - (ひ)メモ

    自分も含め、InnoDB Pluginの使用を検討してる人も多いのではないかと思うのですが、ちと気になるバグを見かけたので追試してみました。 Bug #47621 MySQL and InnoDB data dictionaries will become out of sync when renaming columns http://bugs.mysql.com/bug.php?id=47621 http://bugs.mysql.com/bug.php?id=44571 現象 カラムの名前を替えて、新しい名前のカラムに対して index をつけると、InnoDB Plugin 1.0.4 以前は mysqld がクラッシュし、1.0.5 以降はエラーが出て index がつけられない。 対処法 別テーブルを作ってデータをコピーする。 再現方法 DROP TABLE IF EXISTS

    メモ: InnoDB Pluginのバグ - (ひ)メモ
    perezvon
    perezvon 2010/01/11
    「カラムの名前を替えて、新しい名前のカラムに対して index をつけると、InnoDB Plugin 1.0.4 以前は mysqld がクラッシュし、1.0.5 以降はエラーが出て index がつけられない。」
  • GitHub - jamesgolick/friendly: http://jamesgolick.com/2009/12/16/introducing-friendly-nosql-with-mysql-in-ruby.html

    Turn MySQL in to a document db! Why? Everybody is super excited about NoSQL. Aside from the ridiculous rumour that removing SQL makes things magically scalable, there's a lot of reason to look forward to these new data storage solutions. One of the biggest improvements is where schema / index changes are concerned. When you have a ton of data, migrating MySQL tables takes forever and locks the tab

    GitHub - jamesgolick/friendly: http://jamesgolick.com/2009/12/16/introducing-friendly-nosql-with-mysql-in-ruby.html
    perezvon
    perezvon 2009/12/28
    NoSQL with MySQL in Ruby
  • Choosing proper innodb_log_file_size

    If you’re doing significant amount of writes to Innodb tables decent size of innodb_log_file_size is important for MySQL Performance. However setting it too large will increase recovery time, so in case of MySQL crash or power failure it may take long time before MySQL Server is operational again. So how to find the optimal combination ? First let me explain what happens on recovery and why large

    perezvon
    perezvon 2009/12/07
    innodb_log_file_size
  • How to calculate a good InnoDB log file size

    All of Percona’s open-source software products, in one place, to download as much or as little as you need.

    How to calculate a good InnoDB log file size
    perezvon
    perezvon 2009/12/07
    innodb_log_file_sizeの算出の仕方
  • MySQL File System Fragmentation Benchmarks

    All of Percona’s open-source software products, in one place, to download as much or as little as you need.

    perezvon
    perezvon 2009/12/07
    innodb_file_per_table
  • MySQL 5.1.41リリース - SH2の日記

    出ました。今回は機能の追加・変更が4件、バグ修正が62件あります。 MySQL 5.1.38から同梱されるようになったInnoDB Pluginですが、MySQL 5.1.41ではバージョンが1.0.5に上がり、ついにRC(リリース候補版)となりました。再掲になりますがInnoDB PluginはビルトインのInnoDBに比べて以下のような機能強化が施されており、非常に有用性の高いものです。そろそろ利用を検討しても良い時期に入ってきたのではないかと思います。 高速なインデックス作成。従来InnoDBCREATE INDEXはテーブルの再作成を伴っていました テーブルとインデックスの圧縮 (検証結果その1、その2) INFORMATION_SCHEMAによるロック競合の検出 (検証結果) CPUスケーラビリティの向上 (1.0.3から) バックグラウンドI/Oスレッドの増加 (1.0.4か

    MySQL 5.1.41リリース - SH2の日記
    perezvon
    perezvon 2009/11/24
    InnoDBバッファプール
  • oursql in Launchpad

    oursql is a set of MySQL bindings for python with a focus on wrapping the MYSQL_STMT API to provide real parameterization and real server-side cursors. Current location of the source code is now github: https://github.com/python-oursql/oursql This repo is only for historical reasons now.

    perezvon
    perezvon 2009/11/15
    oursql is a set of new python bindings for mysql, intended to replace and generally work better than MySQLdb.
  • レプリケーションしてるMySQLで、マスタやスレーブが障害停止した場合のリカバリプラン - (ひ)メモ

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

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

    Amazon Relational Database Service(以下RDS)は、MySQL 5.1が稼働するサーバーをEC2インスタンスライクに利用することができるサービス。Amazon Web Servicesのアカウントがあれば、Webから申し込みをするだけで、初期費用なしで利用を開始することが可能。 RDSにおける用語 データベースインスタンス (DB Instance) クラウド内で稼働する個別のデータベース環境。通常のMySQLサーバーだと考えてよいが、SSHでのログインはできない。1つのデータベースインスタンス内には複数のデータベースを作成することができる。 データベースインスタンスの作成時には「マスターユーザー名」と「マスターユーザーのパスワード」を指定する必要がある(起動後も変更可能)。また、通常のMySQLと同様にユーザーの追加や権限の設定を行うこともできる。 デー

  • MySQL 5.1.40リリース - SH2の日記

    出ました。今回はバグ修正が48件あり、そのうちパーティショニング機能に関するものが5件、レプリケーション機能に関するものが6件あります。サーバクラッシュ系のバグ修正がいくつかありますが、いずれも発生条件が極めて複雑であり、通常の運用で当たることはまずないのではないかと思います。 今回ちょっと気になったバグとして、Bug#44369があります。 mysql> create table test (DB_ROW_ID int) engine = innodb; ERROR 1005 (HY000): Can't create table 'scott.test' (errno: -1) mysql> create table test (db_row_id int) engine = innodb; Query OK, 0 rows affected (0.01 sec)InnoDBでは特定の

    MySQL 5.1.40リリース - SH2の日記
    perezvon
    perezvon 2009/10/24
    MySQL 5.1.40リリース/InnoDBではDB_ROW_ID, DB_TRX_ID, DB_ROLL_PTRというカラムを作れない。
  • InnoDBの超高負荷更新処理安定性

    最近は沢山CPUコアのある高速なサーバーとか高回転数のHDDが沢山付いたRAIDストレージとか、もの凄く更新系の負荷がかかるベンチマーク(「db_STRESS」 by Dimitriさん)とかがあるので、InnoDBの構成の更新系での様々な限界が見えてきています。 まぁ、現実的にそのような限界を突破する必要のあるシステムがあるかどうかは判りませんが、将来のためにも色々アイデアを加えてXtraDBを作成してきました。今、大幅な変更無しに実装できる範囲のオプションが揃ってきたので高負荷更新系処理のチューニングをXtraDBベースで一旦書き出してみます。 今回もサクサクとポイントだけ。 (IOスレッドを増やす とか、他でも語られている既知のものは省略します。) 今回のチューニングの方針は、 「mutexやrw_lockなどの競合をできるだけ避ける」 ということと 「あまり沢山溜めてはイケナイもの

    perezvon
    perezvon 2009/10/20
    InnoDB/XtraDBのチューニングの指針