MySQL

[MySQL] rangeが絡むバッチサイズの計算

MySQL

range_optimizer_max_mem_sizeを超えた場合のrangeはFull Scanになってしまう。

対策

Full Scanにならないようにバッチサイズを見積もる

前提

MySQL7.0以上

見積もり方

range_optimizer_max_mem_sizeの値を検索する

SELECT COUNT(*) FROM t
WHERE a IN (1,2, ..., M) AND b IN (1,2, ..., N);

INで指定する要素にかかるサイズは230バイト

 

range_optimizer_max_mem_size > 230 * M * N

になるようにBatchサイズを見積もること

関連

 

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)