2018年07月06日

MySQLパフォーマンスチューニング PDF

MySQLパフォーマンスチューニング概要 - Oracle さんのpdf



InnoDB パフォーマンス Tips

innodb_buffer_pool_size
 MySQL&InnoDBのみを利用していれば、メインメモリの80%程度を割り当てる
 データとインデックスの両方をキャッシュ

innodb_log_file_size

innodb_buffer_pool_sizeの25%?100%
 ログファイルがどの程度頻繁に切り替わっているかをチェック
 値を大きくするとクラッシュ後のリカバリ時間が長くなる
 innodb_flush_log_at_trx_commit
 1 (遅い) コミット時にログをフラッシュ。真のACID
 2 (速い) コミット時にはOSのキャッシュにログをフラッシュ、ディスクとのシンクは毎秒1回
 0 (最速) ログを毎秒1回(またはそれ以下)

起動中の変更は
mysql > set global innodb_flush_log_at_trx_commit = 2;
再起動は、不要のようです

posted by a23 at 17:38| Comment(0) | MySQL

2018年07月05日

MySQL insert 遅い でググってみた

300万程度のレコードの他のデータベースからのコンバートする。


たった3秒でInnoDBのデータローディングが快適になるライフハック 
バイナリログを無効にする
mysql> SET sql_log_bin=OFF;  
は試してみましたが、こちらのケースでは、有効では、ありませんでした。


MySQLインサートが遅いなと思ったらマルチプルインサートを試してみよう
は試してみましたが、こちらのケースでは、ツールの仕様で、上限が10万程度の制限がありました。

その場限りなら、下記のコマンドでサイズを増やすことができます。

set max_allowed_packet=[設定したい値];

恒久的にサイズを増やす場合は、/etc/my.cnfの下記を修正してください。

max_allowed_packet=16MB


LOAD  IMPORT を、試す

MySQLに大量のデータを入れるときに最適な方法は?


MySQLのLOAD DATA INFILEで大はまりした話
改行コードに注意 CR+LF


posted by a23 at 09:11| Comment(0) | MySQL