[前][次][番号順一覧][スレッド一覧]

mysql:583

From: Tatsuya Ina <Tatsuya Ina <ina@xxxxxxxxxx>>
Date: Mon, 18 Jan 1999 17:05:22 GMT
Subject: [mysql 00583] Re: MySQL speed

伊奈です。

本業の合間にやっているのでなかなか進みませんが、

> 毅です
>  〜 中略 〜 
> a).
> mysqladmin flush-tables
> isamchk -r database/Test_all_tab
> 
> b) ISAM のバッファの変更
> isam/static.c:
> nisam_block_size=1024
> を
> nisam_block_size=8192
> に変更
> 
> c) char binary 型の使用
>  alter table する場合も(a)と同様、tmpdir の容量と、
>  database directory のあるパーティションの容量に気をつけてください。
> 
> d) key_buffer= の十分なわりあて

やってみました。

> c) char binary型の使用
以外は結果が出たので報告します。

(1)まずはデフォルト設定のまま
mysql> select count(*) from Test_all_tab where lotno like 'D15A0%';
+----------+
| count(*) |
+----------+
|   717505 |
+----------+
1 row in set (9 min 26.46 sec)


mysql> select count(*) from Test_all_tab where stop_day between '1998-11-14 00:00:00' and '1998-12-14 23:59:59';
+----------+
| count(*) |
+----------+
|  1118730 |
+----------+
1 row in set (5 min 8.02 sec)

(2)バッファーサイズを32mに変更
-O key_buffer=32m -O sort_buffer=32m -O record_buffer=32m
ickg140:~$ mysqladmin variable
+----------------------+---------------------------------+
| Variable_name        | Value                           |
+----------------------+---------------------------------+
| back_log             | 5                               |
| connect_timeout      | 5                               |
| basedir              | /usr/local/                     |
| datadir              | /usr/local/var/                 |
| join_buffer          | 131072                          |
| key_buffer           | 33550336                        |
| language             | /usr/local/share/mysql/english/ |
| log                  | ON                              |
| long_query_time      | 10                              |
| low_priority_updates | OFF                             |
| max_allowed_packet   | 1048576                         |
| max_connections      | 90                              |
| max_connect_errors   | 10                              |
| max_join_size        | 4294967295                      |
| max_sort_length      | 1024                            |
| net_buffer_length    | 16384                           |
| port                 | 3306                            |
| record_buffer        | 33550336                        |
| skip_locking         | ON                              |
| socket               | /tmp/mysql.sock                 |
| sort_buffer          | 33554424                        |
| table_cache          | 64                              |
| thread_stack         | 65536                           |
| tmp_table_size       | 1048576                         |
| tmpdir               | /tmp/                           |
| update_log           | OFF                             |
| wait_timeout         | 28800                           |
+----------------------+---------------------------------+

mysql> select count(*) from Test_all_tab where lotno like 'D15A0%';
+----------+
| count(*) |
+----------+
|   717505 |
+----------+
1 row in set (9 min 30.93 sec)

mysql> select count(*) from Test_all_tab where stop_day between '1998-11-14 00:00:00' and '1998-12-14 23:59:59';
+----------+
| count(*) |
+----------+
|  1118730 |
+----------+
1 row in set (5 min 7.26 sec)

影響はありません。

(3)isamchk -r 実行
ickg140:/usr/local/bin# ./isamchk -r /usr/local/var/qctrans/Test_all_tab
- recovering ISAM-table '/usr/local/var/qctrans/Test_all_tab.ISM'
Data records: 4847180
- Fixing index 1
- Fixing index 2
- Fixing index 3

ちょうど1Hくらいで終了

iamchk後、確認
mysql> select count(*) from Test_all_tab where lotno like 'D15A0%';
+----------+
| count(*) |
+----------+
|   717505 |
+----------+
1 row in set (4 min 35.98 sec)

mysql> select count(*) from Test_all_tab where stop_day between '1998-11-14 00:00:00' and '1998-12-14 23:59:59';
+----------+
| count(*) |
+----------+
|  1118730 |
+----------+
1 row in set (1 min 3.75 sec)

おお! かなり速くなりました。

(4)nisam_block_size=8192として再コンパイル、インストールし直しました。結果は

mysql> select count(*) from Test_all_tab where lotno like 'D15A0%';+----------+
| count(*) |
+----------+
|   717505 |
+----------+
1 row in set (4 min 33.17 sec)


mysql> select count(*) from Test_all_tab where stop_day between '1998-11-14 00:00:00' and '1998-12-14 23:59:59';
+----------+
| count(*) |
+----------+
|  1118730 |
+----------+
1 row in set (1 min 5.18 sec)

isamchk -r 後の結果とあまりかわりません。

申し訳ありません。本業(半導体の不良解析エンジニアです)がたて込んでしまって
いるので、続きは明日行います。

取り合えず、報告まで。


伊奈 竜也 (ina@xxxxxxxxxx)



[前][次][番号順一覧][スレッド一覧]

->     583 1999-01-19 02:05 [Tatsuya Ina <ina@xxx] Re: MySQL speed                         
       597 1999-01-19 02:58 ┗[<takeshi@xxxxxxxxxx>]