問題タブ [vacuum]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
postgresql - データベース テーブルのサイズが比例して減少しなかった
PostgreSQL 8.4.13 データベースを使用しています。
最近、テーブルに約 8,650 万件のレコードがありました。それらのほとんどすべてを削除しました - 5000 レコードしか残っていません。走った
と
行を削除した後。しかし、テーブルが大きなディスク領域を占有していることはまだわかります。
また、残りの行のインデックス値はまだかなり高く、100 万の範囲のようです。バキュームと再インデックスの後、残りの行のインデックスは 1 から始まると思いました。
ドキュメントを読みましたが、インデックスの再作成に関する私の理解が歪んでいたことは明らかです。
それにもかかわらず、私の意図は、削除操作後にテーブル サイズを縮小し、インデックス値を下げてSELECT
、テーブルからの読み取り操作 () にそれほど時間がかからないようにすることです。現在、私のレコードから 1 つのレコードを取得するのに約 40 秒かかります。テーブル。
アップデート
ありがとうエルウィン。pgのバージョン番号を修正しました。
私のために働いた。ここでフォローアップの質問が 1 つあります:
大きなテーブルのほとんどを削除した後、既存の行の主キー番号を再起動します
url - Amazon Product API: Amazon販売後にURLにリダイレクト/パラメータ(ポストバック)を送信
Amazon アソシエイトを使用して、リンクを宣伝します。販売後にパラメータを取得するにはどうすればよいですか? (シド)
どのクリックが変換されたかを確認できるように、変換後に URL にリダイレクトしたり、パラメーターをサイトに戻したりしたいと考えています。それ、どうやったら出来るの?Amazon のアソシエイト (アフィリエイト) プログラムをあちこち探しましたが、何も見つかりませんでした。私はそこでこれを行うことができますか?
それとも、Amazon の Product Advertising API を使用する必要がありますか? そこには何も見つかりませんでした。商品の展示についてだけで、販売後に何が起こるかについてはわかりませんでした。これを記録できなければなりません。vacuum
Rails の gemを見つけましたが、例にはありません。
これを行う方法はありますか?
postgresql - PostgreSQL で未使用の LOB が占める領域を再利用する方法
中規模のデータベース クラスタを PostgreSQL 8.3 で実行しています。
データベースは、デジタル ファイル (画像) を LOB として格納します。
データベース クラスタにはかなりのアクティビティがあり、多くのコンテンツが継続的に作成および削除されています。
OID をホストするアプリケーション テーブルが (イメージ ファイルが削除されると) アプリケーションによって適切に維持される場合でも、データベース クラスタのサイズは継続的に増大します。
自動バキュームがアクティブであるため、これは発生しません。
postgresql-8.4 - POSTGRESQL VACUUM ANALYZE が、hstore 列を持つテーブルで失敗する
hstore 列を持つテーブルで VACUUM ANALYZE を実行すると、次のエラーが発生します。
比較関数なしで強制的に完了することはできますか?そうでない場合は、どのように定義すればよいですか?
sqlite - sqlite データベースをバキュームする方法は?
sqlite データベースをバキュームする方法を知りたいです。コマンドプロンプトからデータベース全体に対して構文MANUAL VACUUMコマンドを試しました:
しかし、それは次のようにエラーを出しています:
また、自動バキューム:
そして、特定のテーブルに対して次のように試しました:
しかし、結果はありません。
postgresql - postgres バキュームは肥大化を変えませんでした
heroku 管理の postgresql 9.2 データベース内のすべてのテーブルに対して手動のバキューム操作を実行する前と実行した後の肥大化したテーブルを次に示します。ご覧のとおり、あまり変化はなく、廃棄物が増えています...
その理由は何でしょうか? これは正常な動作ですか?
前:
後:
postgresql - インデックス作成または自動バキュームがクエリ結果の動作を変更するかどうか?
特定のクエリの結果について疑問があります。
SELECT final_copy,num_chars FROM table1 t1,table2 t2
WHERE t1.numid = t2.id
このクエリで 2 つの行を取得すると、
final_copy | num_chars
--+-----------------
ここで、final_copy 1 は挿入された最新のレコードです。このクエリはループで実行され、一貫して最初の行で final_copy が 1 のレコードを常に返します。ご覧のとおり、クエリは「order by」を使用していませんでした。
しかし、現在、クエリ結果に一貫性がありません。つまり、最後の挿入日に基づいて行が返されません。
私の疑問は、バキュームまたは再インデックス時にクエリ結果の動作が変わる可能性があるということです。先週、これらのテーブルの再インデックスとバキュームを行いました。それによって結果の動作が変わりますか?
私のデータベースは postgresql バージョン 7.4.3 です。
sqlite - アプリケーションレベルの再試行により、SQLiteバキューム「データベースがロックされている」を回避します
プロセス間の永続的なメッセージ キューイング メカニズムとして単純な sqlite DB を使用しています。特定の制限を超えた後にファイルサイズを縮小するには、「vacuum」コマンドを使用したいと考えていました。通常、これはすべてうまく機能しますが、掃除機をかけるときに「データベースがロックされています」というエラーが時々発生するだけです。
Web 上のさまざまなリソースを読んだ後、sqlite レベルでできることは何もないことがわかりました。
ただし、副次的な質問のほかに、「なぜそうなのか? 通常の busyHandler メカニズムを使用して必要なロックを取得しようとすると、何が問題になるのでしょうか?」私は、まったく同じ busyHandler メカニズムをアプリケーション レベルで実装するというアイデアを思いつきました。
ここで重要な質問: これで何か問題がありますか?
たくさんthx!!