Community journal

The latest from the MySQL community

Ideas, releases, practical guides, and perspectives from the people building with MySQL.

Follow the feed
Showing entries 1951 to 1960 of 3187 « Previous | Next »
Test::mysqld 0.17 でテストがもっと簡単になる話

Test::mysqldというモジュールがあって、MySQLを使うテストを簡単に書けるので好評なわけですが、今回これに copy_data_from って、既存のデータディレクトリをコピーして mysqld を起動するオプションを足しました。

このオプションを使うことで、以下のように MySQL データベースからコピーしたデータを使うテストを書くことができるようになっています。

use Test::mysqld;

my $mysqld = Test::mysqld->new({
    my_cnf => {
        'skip-networking' => '',
    },
    copy_data_from => 't/mysql.data', # mysqld の data ディレクトリをコピーしたやつ
}) or die $Test::mysqld::errstr;

my $dbh = DBI->connect($mysqld->dsn(dbname => 'myapp'))
    or die $DBD::errstr;

... # 以下テストコード

説明あきたのであとは …

[さらに読む]
pt-duplicate-key-checkerが快適

Percona Toolkitのひとつpt-duplicate-key-checker。
名前の通り、重複したインデックスをチェックしてくれる。

$ pt-duplicate-key-checker S=/usr/mysql/5.5.30/data/mysql.sock,u=tpcc,p=xxxx --database=tpcc

# ########################################################################
# tpcc.stock
# ########################################################################

# s_w_id is a left-prefix of PRIMARY
# Key definitions:
#   KEY `s_w_id` (`s_w_id`),
#   PRIMARY KEY (`s_w_id`,`s_i_id`),
# Column types:
#         `s_w_id` smallint(6) not null
#         `s_i_id` int(11) not null
# To remove this duplicate index, execute:
ALTER TABLE `tpcc`.`stock` DROP INDEX `s_w_id`;

…

[さらに読む]
OSS貢献者賞を頂いたので昔話をします

この記事は、おっさんの自分語りと昔話なので、あまり読む価値はないです。

もう1ヶ月くらい前になるのですが、OSS貢献者賞を頂きました。

最近はあまりOSSに貢献するようなことをしてる自覚はなかったので、なぜ自分が候補にあがったのか謎でした。OSS貢献者賞のページによると、

影響力のある開発プロジェクトを創造、運営した開発者やグローバルプロジェクトにおいて活躍する卓越した開発者及び普及に貢献した方を表彰するもの

…

[さらに読む]
INFORMATION SCHEMA [MySQL 5.1.66以降+InnoDB Plugin、5.5.28以降、5.6以降の場合]

情報スキーマ(INFORMATION SCHEMA)はバージョン毎にテーブルが追加されていっています。 首記のバージョンで追加されたのは、次のものです。

[追加された3個のテーブル]
+---------------------------------------+
| Tables_in_information_schema          |
+---------------------------------------+
| INNODB_BUFFER_PAGE_LRU                |独自: InnoDBバッファプールページLRU情報
| INNODB_BUFFER_POOL_STATS              |独自: show engine innodb status;相当の情報
| INNODB_BUFFER_PAGE                    |独自: InnoDBバッファプールページ情報
+---------------------------------------+
40 rows in set (0.00 sec)

これらはまず5.6に実装されてバックポートされたものです。

5.6ではさらに20個(I_S総数でMySQL 5.5では40個、MySQL 5.6では60個)のテーブルがありますので、 …

[さらに読む]
チューニンガソン5の復習 MySQL 5.6 新機能編

というわけで、MyNA(日本MySQLユーザ会)会 2013年3月に参加して発表をしてきました。とてもリラックスして話をすることができました。司会進行の坂井さんをはじめ日本MySQLユーザ会のみなさま、日本オラクルのみなさま、当日お越しいただいたみなさま、どうもありがとうございました。 私のセッションでは前回のエントリの続きということで、MySQL 5.6の新機能Optimizer Traceを活用しながら正攻法でのチューニングを行っていきました。とはいえ途中から正攻法ではなくなっていた気もします。MySQL 5.6でRDBMSとしての土台はしっかりしてきたと思いますので、今後は高度な統計情報を使用したSQL実行計画の最適化といったところにも機能強化が施されていくのではないかと期待しています。 プレゼンテーション資料 (PDF) …

[さらに読む]
チューニンガソン5の復習 MySQL 5.6 新機能編

というわけで、MyNA(日本MySQLユーザ会)会 2013年3月に参加して発表をしてきました。とてもリラックスして話をすることができました。司会進行の坂井さんをはじめ日本MySQLユーザ会のみなさま、日本オラクルのみなさま、当日お越しいただいたみなさま、どうもありがとうございました。
私のセッションでは前回のエントリの続きということで、MySQL 5.6の新機能Optimizer …

[さらに読む]
バイナリログやスローログを見やすくするワンライナー

バイナリログやスローログを遡って更新履歴をチェックしたりする時に(個人的に)面倒なのが、
`こいつらはSQLステートメントの改行を反映するし、インデントもしっかり記録してくれる'こと。

grep -v "INSERT INTO t1"とかやっても、"VALUES"の手前で改行してインデントするような
小綺麗に書かれたコードだと上手く引っ掛けにくい。
個人的にはインデントあった方が好きだけど、大量のログを見る時には不向き。

なので1分で考えたワンライナー。

perl -e '$/="#"; while(<>) { s/[ \n\r\t]{2,}/ /g; print $_;}' | egrep -iv '^SET (TIMESTAMP|.+session\.|INSERT_ID)|^/\*|^BEGIN|^COMMIT|^DELIMITER' | grep '^[^#]' -B1


…

[さらに読む]
[event][mysql]日本MySQLユーザ会会2013.03開催しました

 超久々となる「日本MySQLユーザ会会」が開催されました。今回は飲食付きのアレではなく、お話を聞く系の形式です。

http://atnd.org/events/37387


 記憶だけで記録を書いてみる。


平塚さんの、MySQL5.6を速くするトライのお話

 Oracle ACE になった平塚さんの話で会はスタート。「日本人としては 18人目のOracle ACE。18なので真のエース!」というのは、我ながら気に入ったネタw。

…

[さらに読む]
日本MySQLユーザ会会2013.03開催しました

 超久々となる「日本MySQLユーザ会会」が開催されました。今回は飲食付きのアレではなく、お話を聞く系の形式です。
http://atnd.org/events/37387


 記憶だけで記録を書いてみる。

平塚さんの、MySQL5.6を速くするトライのお話

 Oracle ACE になった平塚さんの話で会はスタート。「日本人としては 18人目のOracle ACE。18なので真のエース!」というのは、我ながら気に入ったネタw。
…

[さらに読む]
ついに#mysql50#lost+foundデータベースとさよならするのだ

MySQLはデフォルトでdatadirの下にあるディレクトリはデータベースとして扱うが、
MySQL 5.6で追加された--ignore-db-dirオプションを使うと、データベースとして認識されなくなる。

これでdatadirを別パーティションに切っている時の`#mysql50#lost+found'ともさよならなのだ。

mysql> SHOW DATABASES;
+---------------------+
| Database            |
+---------------------+
| information_schema  |
| d1                  |
| d2                  |
| logs                |
| #mysql50#lost+found |
| mysql               |
| performance_schema  |
| test       …

[さらに読む]