Javascriptのすべて削除するときのデータを大きなテーブル
-
09-06-2019 - |
質問
私はすべて削除するときに行からのログを表を含む約5百万円とされています。私が最初に試したのは以下のコマンドをクエリの解析:
から削除すclient_log
が行われるようになったものです。
解決
チェック 丸テーブル が多くなります。
他のヒント
発見したの 丸テーブル にmsdn取引-SQLを参考にした。すべての関心の備考:
TRUNCATE TABLEは機能的に同じものDELETEステートメントのないWHERE句:もすべて行えます。が切り詰めテーブルの高速化と利用の少ないシステムやトランザクションログ資源削除します。
のDELETEステートメントを削除行を一時記録エントリにトランザクションログの各削除されます。丸テーブルを削除し、そのデータによる登録を直接解除データのページの保存に用いられるテーブルのデータだけでなく、そのページdeallocationsに記録されている取引ログです。
TRUNCATE TABLEをすべて削除し列からテーブル、テーブル構造体及びその列の制約条件指数などが残っている。カウンターの使用によるアイデンティティのための新しい行をリセットの種のカラムです。したい場合は、アカウンタの使用削除します。除する場合にはテーブル定義とそのデータ利用のテーブルです。
利用できませんTRUNCATE TABLEテーブルによって参照される外部キーの制約;代わりに使用しますDELETEステートメントなしの場を提供しています。切り詰めテーブルはログインしていない、できませんの起動トリガが発生します。
丸テーブルが利用できないテーブルへの参加はインデックス。
であるという神話を破ることと切り詰めなんだかスキップ取引ログです。
これは誤解で、が明確に記載されているものにMSDN.
この神話は呼び出された複数のコメントです。ましょう撲滅と合わせて;)
参考 丸テーブル もMySQL
忘れて切り詰め、削除します。を維持するテーブル定義の場合はたいが再現でだけ使用下表に示す。
使っている場合は、次のメソッドをゼロにテーブルの追加ボーナスでないといけないとアーカイブにコピーします。
CREATE TABLE `new_table` LIKE `table`;
RENAME TABLE `table` TO `old_table`, `new_table` TO `table`;
truncate table
は ない SQLフォーム独立しています。疑いがある場合は、お が 激変更データ提供されることもありますので、慎重に使用しています。
にSQLサーバーで利用できます Truncate Table
コマンドはよりも早く通常の削除にも使用資源です。まずリセットティ分野のシード値です。
の弱点の切り詰めることはできません使用されるテーブルを参照する外部キーについて火災意をトリガーとする。もんきロールバックのデータか間違っています。
お切り詰めもリセット自動incrementingキーをご利用の場合です。
を希望しない場合は、紛失にご自incrementingキーを押すと、スピードアップを削除する削除するセット(例えば、削除、テーブルからid>1id < 10000).で化とスピードアップを図っている大幅な場合に防止のたデータのロックされます。
あり、削除する5万行でしょうに長い時間がかかる。の潜在的に高速うして私が考えられることはいう、テーブルを再作成します。この作品はもちろん、を削除したい場合には、すべてのデータを表に示す。
truncate table client_log
ることができベットは、切り詰め殺しのすべてのコンテンツを表と指標により、リセットの他の種ん。
の提案の"落とし、再現できるテーブル"はどのように変動するという事ができない生活を送っているとこgoofsまでは、外国鍵となります。
ご利用の外部キーですよね?
場合に利用できません切り詰めテーブルの外部キーおよび/またはトリガーの、ご検討いただけます:
- 落土地の再評価を行い、土地再評価;
- い通常の削除;
- 再生するすべてのスを作成します。
この場合の高速化-削除幾分強含んでいる。
私の見直し今:
することによ に切り詰めデータをクリアしな ものログを 取引履歴に残りますへの書き込みログ は削除す永遠5 百万円とされています。使い切り詰めが 開発時にはございますのでご注意下さいき 警戒して使用できるし、生産 データベースができません をロールバック変更します。すべ すぐにフルデータベース バックアップとして働いた後、切り詰める 確立します。
上記の計算書を迅速かつままれている必要がありま理解が異なるものがございます。残念なことでは十分ではない記述、対応していな諸表をしていないので実際に行った試験を自分の間はご対応できませんこれは言います。
から MSDN:
のDELETEステートメントを削除し行一 同時に記録エントリの トランザクションログの各削除されます。丸テーブルを削除し、そのデータによる 登録を直接解除データのページで使用 店内は、テーブルのデータだけでなく、それ ページdeallocationsに記録されている 取引履歴に残ります
さんがあることを決定的な違いに差があるので、用途のが適切ではない。
DELETE * FROM table_name;
早最適化する危険です。の最適化を味するのは、誰にでも作ればいいを利用することを思いつく。
SELECT DbVendor_SuperFastDeleteAllFunction(tablename, BOZO_BIT) FROM dummy;
速度と思いもよります。
基になるデータベース:Oracle、Microsoft、MySQL、PostgreSQL、その他、カスタム...
のテーブルでコンテンツ関連テーブル:
が削除さい。であり、既存の手順で削除するすべてのコンテンツを利用すか?この最適化のための特定基本的にデータベースエンジン?どのくらいうまく関連データはもらえますか?行を削除する'安全なものになっていてと仮定するとその他の関連するテーブルに依存するものではない。については、そのテーブル、クエリは関連する依存のデータをこのテーブルは?いかにこのテーブルの周りにいる、落が速い方法によって再び基本となるデータベースです。
DROP TABLE table_name;
どのように多くの行が削除されてい?あるその他の情報を迅速に得ることの最適化とともに、これまでに削除?例えば、できて、私たちはテーブルが既が空っぽになってはいませんか?まえがある場合は、数百、数千、何百万、何十億の行?