2029 件中 1761 - 1770 件を表示
« 前の 10 件 | 次の 10 件 »
Displaying posts with tag: MySQL (reset)
勉強会「MySQL Hackingの手引き」を終えて

 昨日は、グリー勉強会にて「MySQLハッキングの手引き」というテーマで発表をしました。資料とデモに使用したソースコードやビルドスクリプト等はこちらに公開しています(サンプルプログラムのコンパイルにはソースからビルドしたMySQL5.1以降が必要)。声をかけてくださったグリーの一井さんや、会場準備など諸手続きを行なってくださったグリーのスタッフの方々、参加された皆さまありがとうございました。

●参加者数の意外な多さ

[さらに読む]
YAPC::Asia 2009 で「スケールするウェブアプリケーションを20分で作る方法」について話します

 このところ、MySQL と Perl 関連のエントリをいろいろ書いていますが、それは、スケールアウト可能で、かつ、管理が容易なウェブアプリケーションを、簡単に書けるようにしたい、という理由があるからです。

 ただ、ブログエントリだとどうしても細切れになるので、一連のモジュールやプログラムを組み合わせて、どうやってスケールするウェブアプリケーションを作るのかという話を YAPC::Asia 2009 でさせていただくことにしました。

 YAPC::Asia 2009 は9月10日(木)と11日(金)の2日間、東京工業大学大岡山キャンパスで開催されます。今日からチケット販売も始まったので、興味のある方はお越しいただければ、と思います。

[さらに読む]
Deployment of MySQL using daemontools, XtraBackup

I am sure many people have already done similar things, but to ease my pain of setting up mysqld on a large-scale environment (I am trying to create a set of database nodes, each node consists of a MySQL failover cluster using semi-sync replication, that can be administered easily), I have just finished writing a deployment script called mysqld_jumpstart.  The caveats are:

  • integration with daemontools (mysqld is automatically started)
  • setup of masters and slaves
  • can setup slaves from backup data generated by XtraBackup

The last feature was the one I especially needed, since thanks to the people at Percona, things have become much …

[さらに読む]
ActiveRecord でbulk insert/update

mala さんのMySQLにおけるbulk insert と bulk update - 金利0無利息キャッシング – キャッシングできます - subtechのエントリーを見て, MySQL でbulk update ができることを知り, 丁度欲しい機能だったのでとりあえず動くだけのメソッドを実装.

# User.extend BulkExecuteMethods
# User.update_multi([:id, :name, :age], [[1, 'bob', 11], [2, 'mary', 21]])
#
# refs
#  http://dev.mysql.com/doc/refman/4.1/ja/insert.html
#  http://subtech.g.hatena.ne.jp/mala/20090729/1248880239
module BulkExecuteMethods
  def update_multi(columns, values)
    cols = columns.map{|c| self.connection.quote_column_name(c) }

    ph = (['(?)'] * values.size).join(',')
    vals = sanitize_sql([ph, *values])
    
    expr = cols.map{|c| "#{c}=VALUES(#{c})" …
[さらに読む]
Perl のテスト用に MySQL 環境を自動で構築するモジュール Test::mysqld を書いた

 ORM やウェブアプリケーション関連のライブラリなどのテストケースを書くにあたっては、 RDBMS へのアクセスが必要になります。しかし、SQLite のようなスタンドアローンのデータベースと比較すると、サーバ型データベースである MySQL に接続してテストを書くのは、既存の MySQL の権限設定やデータベース名を気にする必要があったりと、いろいろ不便です。そこで、MySQL のインスタンスをテンポラリディレクトリに自動生成し、テストが終わったら削除してくれる Perl モジュール Test::mysqld を書きました。こんな感じで使います。

use DBI;
use Test::mysqld;
use Test::More;

my $mysqld = Test::mysqld->new(
    my_cnf => { 'skip-networking' => '' }, # TCP接続を使わない
) or plan skip_all => $Test::mysqld::errstr;

plan tests => 10;

my $dbh = …
[さらに読む]
[MySQL][Spider]Spiderストレージエンジン 0.16リリース

Spiderストレージエンジンのバージョン 0.16をリリースしました。
http://spiderformysql.com/

今回の主な変更は以下です。
・サーバパラメータに「spider_same_server_link」「spider_table_init_error_interval」を追加しました。
 「spider_same_server_link」は、同じMySQLにテーブルリンクを作成したい場合に利用します。
 「spider_table_init_error_interval」は、誤ってテーブルリンクをループさせてしまった場合に、コネクションを消費し続ける問題を抑止するために利用します。もし、テーブルリンクがループした際に、コネクションが増加し続ける場合はset globalコマンドを利用してこのパラメータを大きくしてください。

[さらに読む]
Ruby/MySQL 3.0.2 alpha

Ruby/MySQL 3.0.2 です。相変わらずアルファ版です。

インストール方法:

# sudo gem install tmtm-ruby-mysql --source http://gems.github.com

3.0.1 からの変更点。 Ruby 1.9 対応

これまでのでもちゃんと動くんじゃないかなぁ…と漠然と思っていたのですが、全然動いていないことが判明したので、修正しました。
テストコードを RSpec で書いてしまったので Ruby 1.9 でテストしてなかったのですが、Ruby会議2009 の IRC

[さらに読む]
[MySQL][Spider]Spiderストレージエンジン 0.15リリース

Spiderストレージエンジンのバージョン 0.15をリリースしました。
http://spiderformysql.com/

今回の主な変更は以下です。
・テーブルパラメータに「auto_increment_mode」を追加しました。
・サーバパラメータに「spider_auto_increment_mode」を追加しました。
 Spiderは3モードをサポートします。
 0:リモートサーバにロック付き問い合わせで取得した最新付番を利用して、付番を行う。
 1:Spiderテーブル内のカウントで付番を行う。
 2:リモートサーバで付番を行う。

・サーバパラメータに「spider_ping_interval_at_trx_start」を追加しました。

[さらに読む]
Using a statistical approach to analyze / monitor MySQL bottleneck queries

What comes up to your mind when you hear the phrase "MySQL performance tuning?"  Most of the discussions covering the topic are things like server parameter tuning and blog entries describing the use of the "EXPLAIN" command.  However, it is too time-consuming to check every single SQL query.  A better approach is at first to determine the SQL queries that are actually consuming the server resources, and then to optimize those queries.

So the question is how to find out the bottleneck queries.  At MySQL Conference & Expo 2009, Mark Callaghan explained in his keynote that Google was taking a statistical approach using the "SHOW PROCESSLIST" as a solution.  The same command is mentioned as a rival approach in the webpages of MySQL Query Analyzer as well.  Today, …

[さらに読む]
MySQL のボトルネックを統計的に監視・解析する方法

 MySQL のチューニング、と言った場合には、サーバーパラメータの調整や EXPLAIN コマンドを利用したクエリ実行計画の最適化が話題に上ることが多いです。しかし、発行する全ての SQL について、いちいち EXPLAIN コマンドを使って確認していては、いくら時間があってもたりません。チューニングを効率的に進めるには、まず、ボトルネックとなっている SQL クエリを特定し、次にその最適化を行うべきです。

 ではどのようにして、ボトルネックを特定するのか。MySQL Conference & Expo 2009 のキーノートにおいて Mark Callaghan 氏は、Google では SHOW PROCESSLIST コマンドを使った統計的アプローチを使っていると述べていらっしゃいます (参照: MySQLConf 09: Mark Callaghan, "This is Not a Web …

[さらに読む]
2029 件中 1761 - 1770 件を表示
« 前の 10 件 | 次の 10 件 »