5

長い時間がかかる削除クエリがあります。processlistそのステータスをチェックインすると、「テーブルを閉じています」と表示されます。テーブルを閉じるのに時間がかかっています。

例:
クエリを実行し、合計時間は1:42秒で、その80 ~ 90秒はテーブルを閉じるためのものです。

load dataこれは、 、 、selectなどのすべてのクエリで発生してinsertいます。

以下はmy.cnfの設定です。

key_buffer_size = 2G
sort_buffer_size = 8M
read_buffer_size = 10M
read_rnd_buffer_size = 10M
join_buffer_size = 2M
bulk_insert_buffer_size = 100M
myisam_sort_buffer_size = 64M

#tmp_table_size = 100M
#max_heap_table_size = 64M
#max_allowed_packet = 64M

table_cache=1024


私のメモ情報

[root@localhost ~]# free -m
             total       used       free     shared    buffers     cached
Mem:          7862       6686       1175          0         11       4091
-/+ buffers/cache:       2583       5278
Swap:        15998         18      15980


my.cnfファイル でどのような変更を行う必要があるか教えてください。

4

3 に答える 3

2

テーブルを閉じる

スレッドは、変更されたテーブル データをディスクにフラッシュし、使用されたテーブルを閉じています。これは高速な操作である必要があります。そうでない場合は、ディスクがいっぱいになっていないこと、およびディスクが非常に頻繁に使用されていないことを確認する必要があります。

詳細については、一般的な MySql スレッドの状態を参照してください。

この助けを願っています!

于 2012-07-24T13:36:10.590 に答える
0

テーブルの開閉を避けるために、my.cnf に次の変数を設定する必要があります。

table_open_cache = 10000
table_definition_cache = 10000

http://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html#sysvar_table_open_cacheをご覧ください

およびhttp://dev.mysql.com/doc/refman/5.5/en/table-cache.html

于 2012-07-24T13:33:55.767 に答える