アカウント名:
パスワード:
他のDBを推している人からすれば「vacuumなんて作業が必要になること自体に問題がある」と言われそうですが、
MySQLのInnoDBエンジンでも、更新・削除・追加を繰り返していると性能が落ちますね。 そういうときは、OPTIMIZE TABLEを行うことになりますが、これはたんにテーブルを作り直しているだけです。:)
そのうちauto vacuum的な物が入るのかもしれません。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
私はプログラマです。1040 formに私の職業としてそう書いています -- Ken Thompson
MySQLでもvacuum必要 (スコア:3, 参考になる)
MySQLのInnoDBエンジンでも、更新・削除・追加を繰り返していると性能が落ちますね。
そういうときは、OPTIMIZE TABLEを行うことになりますが、これはたんにテーブルを作り直しているだけです。:)
そのうちauto vacuum的な物が入るのかもしれません。
Re: (スコア:0)
テーブルを作成しなおしてexpしたデータをimpしなおす事もやってたし
24h運用に致命的でなきゃvacuumもあってもいいかな。
#最近Oracle使う仕事は他人に振ったので最近の事情は知らない
Re: (スコア:4, 参考になる)
PostgreSQL はマルチバージョニング(トランザクション開始時点の状態のデータにアクセスするための機構)を
実現するために
「内部では更新の度に新規レコードを作っている」
のです。そしてこれを解放する必要が生じするのです。(約2億レコードに達する前に?)
ですから、
「Vacuum に相当する機構を行わないOracle」というものは
「ロールバックセグメントがいつまでも膨れ続けるOracle」
と考えればいいのではないでしょうか?
MySQL のことはわかりません。
# 勘違いだったらやなので AC
マクロの基本は検索置換(by y.mikome)
Re:MySQLでもvacuum必要 (スコア:1, すばらしい洞察)
確かにOracleはその辺はPostgreSQLより賢いかもしれんけど、
最高水位標(HighWaterMark)の問題があるのだから、全くないわけではない。
PostgreSQLのそれは他のDBMSと比べて使用する頻度が多くなるように思うので嫌われているように思うが、その手の処理がないDBMSってあるのか。
あったとしても他の何かを犠牲にしているだけに思うのだが。
それは使用目的が異なるDBMSだと思う。
MySQLのMyISAMだってSQLServerだって可変長項目の断片化に対するので対処するコマンドがある。これだって不要領域の開放。
SQLServerはデフォルトでクラスタインデックス化されてたりするので割と性能に反映される。
# 別のコメントでMySQLはInnoDBでとあるけどMyISAMも同様だと思うのだが。
# ひょっとして5.xとかだと本当に不要になっている?