mysql:555
From: <takeshi@xxxxxxxxxx>
Date: Fri, 15 Jan 1999 12:39:26 +0900
Subject: [mysql 555] Re: MySQL speed
毅です mysql> explain select count(*) from Test_all_tab where lotno like 'D15A0%'; の結果をみると、だいたい妥当な感じです。 で MySQL の場合、like を使用すると、それの正当性をいちいちチャックして回ります すなわち、単に数え上げているわけでなく、内部では verify しているようです で、MySQL3.22 のルーチンでは、今回のような場合において、 MySQL は 遅くなる事がわかりました。(monty は限られた場合と言ってます) TcX にあげたら、これは、3.23 で fix されます。 mysql> explain select count(*) from Test_all_tab where stop_day >'1998-11-14' and stop_day <'1998-12-14'; からは、 monty いわく、 "こんなに違うのはとても興味深く" (なかば信じられない)てかんじで、 私は empress の特徴をつかんでいないのですが、 ↓の場合、(columnは何を指す?) Empress は速くなるそうです。 " Do you happen to know how Empress saves data? If they save everything by column, this could explain why this is fast. This would of course mean that if you retrieve a couple of columns of data things would get extremely slow." mysql> show status; からは、(ハマさんや民斗さんの言うとおりIOで、) MySQL は 22793 個のキーを探し、(この場合、disk を探しに行っています) disk seek に 10ms, 計 227秒かかっています。 Linux 側の file system の利用が 足を引っ張っているのではないかとのかんがえです。↓ "The only reason I can explain why Empress does the later query in 6 seconds is that Empress uses prealloced files or a pre-allocated disk partition and that it the MySQL tables are very distributed on the disk (by Linux)." また、IOのために遅くなっているので、key_buffer を増やします。 (monty は empress にあたえているメモリーと同じぐらいにするとどうなの? と言ってます -O key_buffer=16M で、少しでも速くするには、4つ方法があり、 a). mysqladmin flush-tables isamchk -r database/Test_all_tab とするとisamchk が最適化してくれます。 これは 相当な 時間がかかります. また、tmpdir を使用しますので、元データが1Gあると、十分に大きなところを tmpdir に指定してから実行してください。 でないと、失敗し、復旧できなくなるかもしれません。 --tmpdir= で指定してきどうするか、/tmp をおおきくするか。 b) ISAM のバッファの変更 Pentium400 クラスだと、ISAM で使用している MySQL 標準のキーブロックサイズ(1024)が少ないようで、 これはソースに埋め込まれているので、ソース変更してリビルドします isam/static.c: nisam_block_size=1024 を nisam_block_size=8192 に変更 c) char binary 型の使用 alter table する場合も(a)と同様、tmpdir の容量と、 database directory のあるパーティションの容量に気をつけてください。 d) key_buffer= の十分なわりあて 以上、ご報告いただけるとありがたいです。 また、参考のためにも、 empress でテーブルやメモリー割り当て、ファイルアロケーションなどをどのように したか、教えていただくとありがたいです。 村上 毅 takeshi@xxxxxxxxxx Soft Agency Co., Ltd. TEL 048-661-1527 PGP fingerprint = 45 5D 54 12 B4 55 77 7F D4 52 66 EC 03 3F 1B E9 [ http://www.softagency.co.jp/mysql/ ] [ MySQL ML: mysql-help@xxxxxxxxxx ]
543 1999-01-14 05:27 [Tatsuya Ina <ina@xxx] Re:MySQL speed 545 1999-01-13 22:48 ┣[<takeshi@xxxxxxxxxx>] 550 1999-01-14 11:16 ┗[民斗 <tommy@xxxxxxxx] 552 1999-01-14 23:21 ┗[Tatsuya Ina <ina@xxx] 553 1999-01-14 19:02 ┗[民斗 <tommy@xxxxxxxx] 554 1999-01-15 00:32 ┗[Shogo Hamamoto <KHC0] -> 555 1999-01-15 12:39 ┗[<takeshi@xxxxxxxxxx>]