質問編集履歴
2
試したこと【2】を追記しました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -19,6 +19,28 @@
|
|
19
19
|
select * from tbl limit 1; -->1ms以下
|
20
20
|
select * from tbl limit 1; -->だんだん遅くなる
|
21
21
|
|
22
|
+
### 試したこと【2】
|
23
|
+
ご指摘いただいた内容について実施しました(結果:ほぼ解決)
|
24
|
+
|
25
|
+
以下、EXPLAIN SELECT * FROM tbl WHERE tbl_seri=1; の結果と処理時間
|
26
|
+
|
27
|
+
試す前の状態
|
28
|
+
Seq Scan on tbl (cost=0.00..71755.30 rows=3142 width=506) 350ms
|
29
|
+
↓
|
30
|
+
VACUUM tbl;実施後
|
31
|
+
Seq Scan on tbl (cost=0.00..64434.24 rows=33 width=506) 320ms
|
32
|
+
↓
|
33
|
+
VACUUM FULL;実施後
|
34
|
+
Seq Scan on tbl (cost=0.00..310.24 rows=33 width=506) 2.9ms
|
35
|
+
↓
|
36
|
+
REINDEX TABLE tbl;実施後
|
37
|
+
Seq Scan on tbl (cost=0.00..310.24 rows=33 width=506) 2.8ms
|
38
|
+
↓
|
39
|
+
VACUUM ANALYZE;実施後
|
40
|
+
Seq Scan on tbl (cost=0.00..535.24 rows=1 width=264) 3.3ms
|
41
|
+
|
42
|
+
明日、VACUUM FULL;なしを試してみようと思います。
|
43
|
+
|
22
44
|
### 補足情報
|
23
45
|
|
24
46
|
PostgreSQL 8.1.23
|
1
indexについての記述を追加しました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -4,6 +4,8 @@
|
|
4
4
|
|
5
5
|
のような処理が、最初は3ms程度ですが、12時間運用すると400msほどになります。
|
6
6
|
|
7
|
+
(上記のtbl_seriはシリアル型のカラムです。それ以外のindexはありません)
|
8
|
+
|
7
9
|
遅くなるのは特定の1テーブルのみでそれ以外のテーブルの速度は1ms以下です。
|
8
10
|
3日ほど運用すると数分反応しなくなるので、現在は1日1回ダンプ→リストアでデータベースを再構築しています。
|
9
11
|
再構築直後から次第に遅くなっていきます。
|