ユーザ用ツール

サイト用ツール


サイドバー

このページの翻訳:



最近の更新



Tag Cloud

01_linux:11_データベース:01_mysql:10_innodb_performance

10 InnoDBパフォーマンス

innodb_buffer_pool_sizeは、DBのみ動作の場合物理メモリの70%~80%程度

innodb_log_files_in_group×innodb_log_file_size < innodb_buffer_pool_size 
innodb_data_file_path = ibdata1:1G
innodb_log_file_size=256M
innodb_log_files_in_group=20

下記のようにib_lobfileを分割して保存する。

# ll -h /var/lib/mysql/ | grep ib_logfile
-rw-rw---- 1 mysql mysql 256M  7月 28 16:49 2016 ib_logfile0
-rw-rw---- 1 mysql mysql 256M  7月 28 16:49 2016 ib_logfile1
-rw-rw---- 1 mysql mysql 256M  7月 14 04:25 2016 ib_logfile10
-rw-rw---- 1 mysql mysql 256M  7月 15 09:15 2016 ib_logfile11
-rw-rw---- 1 mysql mysql 256M  7月 16 13:22 2016 ib_logfile12
-rw-rw---- 1 mysql mysql 256M  7月 17 18:16 2016 ib_logfile13
-rw-rw---- 1 mysql mysql 256M  7月 18 22:19 2016 ib_logfile14
-rw-rw---- 1 mysql mysql 256M  7月 20 02:58 2016 ib_logfile15
-rw-rw---- 1 mysql mysql 256M  7月 21 07:19 2016 ib_logfile16
-rw-rw---- 1 mysql mysql 256M  7月 22 11:20 2016 ib_logfile17
-rw-rw---- 1 mysql mysql 256M  7月 23 18:21 2016 ib_logfile18
-rw-rw---- 1 mysql mysql 256M  7月 25 13:21 2016 ib_logfile19
-rw-rw---- 1 mysql mysql 256M  7月  5 01:20 2016 ib_logfile2
-rw-rw---- 1 mysql mysql 256M  7月  6 07:14 2016 ib_logfile3
-rw-rw---- 1 mysql mysql 256M  7月  7 12:15 2016 ib_logfile4
-rw-rw---- 1 mysql mysql 256M  7月  8 16:44 2016 ib_logfile5
-rw-rw---- 1 mysql mysql 256M  7月  9 19:49 2016 ib_logfile6
-rw-rw---- 1 mysql mysql 256M  7月 10 23:16 2016 ib_logfile7
-rw-rw---- 1 mysql mysql 256M  7月 12 00:09 2016 ib_logfile8
-rw-rw---- 1 mysql mysql 256M  7月 13 00:17 2016 ib_logfile9

tmp_table_size と max_heap_table_size の役割

tmp_table_size

メモリ内で作成される一時テーブルの最大サイズを指定します。
一時テーブルのサイズがこの値を超えると、MySQL はディスク上に一時テーブルを作成します(ディスクI/Oが発生するため遅くなる)。

max_heap_table_size

メモリ内のユーザー作成のメモリテーブル(HEAP / MEMORY テーブル)に適用される最大サイズを指定します。
一時テーブルにも適用されるため、tmp_table_size と合わせて設定する必要があります。

監視と調整

クエリの実行中にディスク上に一時テーブルが作成されているかを確認するには、以下のクエリを実行します:
sql
コードをコピーする

SHOW GLOBAL STATUS LIKE 'Created_tmp_disk_tables';
SHOW GLOBAL STATUS LIKE 'Created_tmp_tables';

Created_tmp_disk_tables の値が高い場合は、tmp_table_size や max_heap_table_size を増やすことを検討します。

推奨値の例

小規模なシステム: 16M ~ 64M
中規模なシステム: 64M ~ 256M
大規模なシステム: 256M ~ 512M(場合によってはさらに高く)
01_linux/11_データベース/01_mysql/10_innodb_performance.txt · 最終更新: 2024/12/03 15:05 by matsui