リージョンのパフォーマンスを調整する
このドキュメントでは、リージョンサイズを調整してリージョンのパフォーマンスを調整する方法と、リージョンサイズが大きい場合にバケットを使用して同時クエリを最適化する方法を紹介します。
概要
TiKV は自動的に最下位層のデータをシャード化する 。データはキー範囲に基づいて複数のリージョンに分割されます。リージョンのサイズがしきい値を超えると、TiKV はリージョンを 2 つ以上のリージョンに分割します。
大量のデータを処理する場合、TiKV は多くのリージョンを分割しすぎる可能性があり、これによりリソースの消費量が増加し、 パフォーマンスの回帰 .一定量のデータの場合、リージョンサイズが大きくなるほど、リージョンの数は少なくなります。 v6.1.0 以降、TiDB はリージョンサイズのカスタマイズ設定をサポートしています。リージョンのデフォルトのサイズは 96 MiB です。リージョンの数を減らすには、リージョンをより大きなサイズに調整します。
多くのリージョンのパフォーマンスのオーバーヘッドを軽減するために、 ハイバネートリージョンまたはRegion Merge
を有効にすることもできます。
リージョンサイズを調整するには、 region-split-size
を使用します
リージョンサイズを調整するには、 coprocessor.region-split-size
設定項目を使用できます。推奨されるサイズは 96 MiB、128 MiB、または 256 MiB です。 region-split-size
値が大きいほど、パフォーマンスのジッターが大きくなります。リージョンサイズを 1 GiB を超えるように設定することはお勧めできません。サイズを 10 GiB を超えるように設定しないでください。 TiFlashを使用する場合、リージョンサイズは 256 MiB を超えてはなりません。
Dumplingツールを使用する場合、リージョンサイズは 1 GiB を超えてはなりません。この場合、リージョンサイズを増やした後で同時実行性を減らす必要があります。そうしないと、TiDB がメモリ不足になる可能性があります。
バケットを使用して同時実行性を向上させる
リージョンがより大きなサイズに設定されている場合、クエリの同時実行性を高めるためにcoprocessor.enable-region-bucket
からtrue
に設定する必要があります。この構成を使用すると、リージョンはバケットに分割されます。バケットはリージョン内のより小さな範囲であり、スキャンの同時実行性を向上させるための同時クエリの単位として使用されます。 coprocessor.region-bucket-size
を使用してバケット サイズを制御できます。デフォルト値は96MiB
です。