質問はすべてタイトルにあり、
1億行のテーブルでクラスタークエリを強制終了すると、データベースにとって危険ですか?
クエリは現在 2 時間実行されており、明日の朝 (できれば残り 12 時間) テーブルにアクセスする必要があります。
私のデータベースはraid ssdとBi-Xeonプロセッサで実行されています。
賢明なアドバイスをありがとう。
シド
質問はすべてタイトルにあり、
1億行のテーブルでクラスタークエリを強制終了すると、データベースにとって危険ですか?
クエリは現在 2 時間実行されており、明日の朝 (できれば残り 12 時間) テーブルにアクセスする必要があります。
私のデータベースはraid ssdとBi-Xeonプロセッサで実行されています。
賢明なアドバイスをありがとう。
シド
いいえ、リスクなしでクラスター操作を強制終了できます。操作が完了する前は、元のテーブル ファイルとインデックス ファイルは何も変更されていません。マニュアルから:
インデックス スキャンを使用すると、インデックス順にテーブル データを含むテーブルの一時コピーが作成されます。テーブルの各インデックスの一時コピーも作成されます。したがって、少なくともテーブル サイズとインデックス サイズの合計に等しい空き領域がディスク上に必要です。
シーケンシャル スキャンと並べ替えを使用する場合、一時的な並べ替えファイルも作成されるため、ピーク時に必要な一時領域は、テーブル サイズの 2 倍にインデックス サイズを加えたものになります。
@Frankが指摘しているように、そうしてもまったく問題ありません。
将来このクエリを実行する必要があり、サービス ウィンドウの余裕があり、ダウンタイムを許容できると仮定すると、いくつかの設定を微調整してパフォーマンスを少し向上させることができます。
あなたの構成では:
Fsync は、ファイル システム同期の略です。fsync をオンにすると、データベースはページ フラッシュごとにファイル システムがコミットするのを待ちます。
生産時間中には割り当てられないため、使用可能なすべてのメモリを取得しても問題ありません。テーブルと作業中のインデックスの大きさはわかりませんが、メイン メモリに完全にロードできると、処理が速くなります。