2008年10月26日日曜日

MySQLのテーブルの大量作成と削除

#!/bin/sh
i=0
j=10
while [ $i -lt $j ]
do
let i="${i}+1"
echo tbl$i
echo y | mysqladmin -u root drop tbl$i
done

mysqladmin でパスワードが要るようだと、expectを使うのか?と思っていろいろトライしてみたが、どうしても途中のコマンドをunknownとかいうので、諦めた。やっぱりシェルスクリプトって自分には分かりづらい。http://kansai.anesth.or.jp/gijutu/expect/howto-expect.htmlにTcl/Tkの拡張言語ってあるが、なんだろ? そもそもシェルの立場が分かってないってことだね。

で、本題のテーブルの作成と削除ですが、一万個は普通に100個0.5秒ぐらい?な感覚でコマンドラインがスクロールしてました。CPUの使用率はアクティビティモニタで眺めていると、ターミナルのエコーバックのせいもあってか、7割ぐらい行ってる感じに見えますね。そこでターミナルのウィンドウを最小化(ゴミ箱の横に表示されるように)して見ましたが、あまり変わりませんねえ。まあ、常にこんなことをやるわけじゃないので、ピーク時の問題の1つということでしょうか(10k問題じゃないですけど、テーブル作成につながる機能を1万ユーザが同時に行った場合)。

MySQLはライセンスが良くわからないので、今度10/30,31に行われるショーで聞いてこようと思いますが、”商用でも無料”で使えそうで、かつXMLも扱えるらしいPostgreSQLも試してみたいです。

0 件のコメント: