デブサミついでにdrizzle.jpの方々と飲もうという会。結構いい気分なので手ぶれまくっていますが、それはご愛敬ということで。drizzle(MySQL)界の濃い面々がそろい、夜は更けていくのでありました。。。。
デブサミついでにdrizzle.jpの方々と飲もうという会。結構いい気分なので手ぶれまくっていますが、それはご愛敬ということで。drizzle(MySQL)界の濃い面々がそろい、夜は更けていくのでありました。。。。
Vertical Partitioningストレージエンジンのバージョン 0.8(alpha)をリリースしました。
Vertical Partitioningストレージエンジンは、テーブルのVertical
Partitioning用のストレージエンジンです。
http://launchpad.net/vpformysql
今回の主な変更は以下です。
今回はbugfixリリースです。
詳しくは、ダウンロードドキュメント中の「99_change_logs.txt」をご確認下さい。
MySQL/Ruby にバグがあったので 2.8.2 をリリースしました。
ダウンロードはこの辺から→ http://rubyforge.org/projects/mysql-ruby/
Mysql#insert_id が 32bit を超える場合に不正な値を返すというものです。
具体的には BIGINT AUTO_INCREMENT の場合に、自動的に 2147483648(UNSIGNED BIGINT の場合は 4294967296)以上の場合に、不正な値を返します。
mysql> create table t (id bigint auto_increment, unique(id)); mysql> alter table t auto_increment=2147483645;
m.query('insert into t values (0)')
m.insert_id #=> 2147483645
m.query('insert into t values (0)')
m.insert_id #=> …[さらに読む]
巷ではプログラミング言語の最速マスターが流行ってるので、MySQLも参戦。ただし管理者向け。
まずはダウンロードとインストールダウンロードサイト http://dev.mysql.com/downloads/
バイナリにはインストールパッケージ(Windows=MSI、Mac=DMG、Linux=RPMとか)とアーカイブ(*NIX=tar.gz/Windows=zip)があるけど、初心者は黙ってパッケージをチョイス。インストールはウィザードに従うだけ。英語だけどそこはガマン!
パッケージリポジトリがあるOSを使ってるなら、リポジトリからインストールするのもありだ。例えば、 shell> sudo yum install mysqlとか shell$gt; sudo apt-get install mysqlとか。これは楽チンだけどMySQLのバージョンがちょっと古くなるので注意。
日経ソフトウエア 2010年 01月号
[雑誌]
日経ソフトウエアの新年号には「データベースまるごと学習ブック」というMySQL/PostgreSQLをつかった付録がついていました。過去記事をうまくまとめてわかりやすいのだけれども、過去記事ゆえに現状とそぐわないところ、間違っているところがいくつかありましたので、ここでMySQL関連だけ勝手に校正しておきます。(インストール記事が5.1.40を利用しているので、それを前提とします)
(1) データ型の決定(p.12)
…
Engine Independent Testというものを作り始めました。
http://launchpad.net/engineindependenttestformysql
これは、どんなストレージエンジンでも試験可能なテストを目指すもので、現在数多くあるストレージエンジン全体の品質の確認と担保を容易にすることを目的としています。
草案は以下のwikiにあがっていたのですが、まだ作られてはいないようだったので、私が既に複数のストレージエンジンをリリースしておりそこで必要だったということもあり、作りはじめてみることにしました。
http://forge.mysql.com/wiki/EngineIndependentTestSuite
…
たとえば、MySQL を使ったお手軽メッセージキュー実装 - ドワンゴ 研究開発ブログに出てくるようなInnoDBをメッセージキューのように使っているときに、キューにどれだけメッセージが溜まってるかを確認したいとき、普通に考えるとCOUNTすると思う。
SELECT COUNT(*) AS count FROM test_queue;
この軽い気持ちでしたCOUNTが、もしうっかりキューに100万レコードぐらいあったりするとInnoDBだとPRIMARYキー総なめとかしちゃってレスポンスにかかる0.1秒ぐらいのあいだ罪悪感に苛まれることでしょう。
…
[さらに読む]の場合。
InnoDB -> InnoDB Pluginで増えたオプション
innodb_adaptive_flushing ON innodb_change_buffering inserts innodb_file_format Antelope innodb_file_format_check Antelope innodb_io_capacity 200 innodb_old_blocks_pct 37 innodb_old_blocks_time 0 innodb_read_ahead_threshold 56 innodb_read_io_threads 4 innodb_replication_delay 0 innodb_spin_wait_delay 6 innodb_stats_sample_pages 8 innodb_strict_mode OFF innodb_use_sys_malloc ON innodb_write_io_threads 4
InnoDB Plugin -> XtraDBで増えたオプション
innodb_adaptive_checkpoint estimate innodb_checkpoint_age_target 0 innodb_dict_size_limit 0 innodb_enable_unsafe_group_commit 0 innodb_expand_import 0 innodb_extra_rsegments 0 innodb_extra_undoslots OFF innodb_fast_recovery ON …[さらに読む]
Spiderストレージエンジンのバージョン 2.12(beta)をリリースしました。
Spiderストレージエンジンは、database sharding用のストレージエンジンです。
http://spiderformysql.com/
今回の主な変更は以下です。
MariaDBに対応しました。
・サーバパラメータに「spider_connect_mutex」「spider_connect_retry_count」「spider_connect_retry_interval」を追加しました。
これらのパラメータは、接続処理が激しくなった際に起こる接続失敗に対応するためのものです。(この現象は特に「spider_conn_recycle_mode=0」を利用している場合に発生します)
それ以外の変更については、ダウンロードドキュメント中の「99_change_logs.txt」をご確認下さい。
…
Thanks to a user of Q4M, I have found a bug that would likely lead to data corruption on 32bit versions of Q4M. 64bit versions are unaffected.
Q4M by default uses mmap(2) to read from data files. On 32bit systems, it tries to map max. 1GB per each table into memory using mmap. When mmap fails to map memory due to low memory, Q4M falls back to file I/O to read the data.
However there was a bug in handling the response from mmap, that led to reading corrupt data from database files when mmap(2) failed after the size of the underlying file was grown / shrunk by Q4M. And since Q4M writes back the corrupt data into the database file when rows are being consumed, the bug will likely destroy the database files.
I have fixed the bug and have uploaded Q4M 0.9.2, into the prerelease directory at …
[さらに読む]