]> git.sur5r.net Git - bacula/bacula/commitdiff
Remove the file_fp_idx index for Postgresql (FilenameId, PathId) on
authorEric Bollengier <eric@eb.homelinux.org>
Tue, 22 Sep 2009 21:17:03 +0000 (23:17 +0200)
committerEric Bollengier <eric@eb.homelinux.org>
Tue, 22 Sep 2009 21:17:03 +0000 (23:17 +0200)
File table.
It is useless for common usage, and causes performance issues.
This index fragments over the time and the update cost grows
very quickly. (This index is not present on Mysql schema)

bacula/src/cats/make_postgresql_tables.in
bacula/technotes

index 3a0957640689c3d45ee3831f7b76ad936e4a057e..f53d6f49a948acee21ba3268d9de5bb74a943b31 100644 (file)
@@ -27,9 +27,6 @@ CREATE TABLE path
 ALTER TABLE path ALTER COLUMN path SET STATISTICS 1000;
 CREATE UNIQUE INDEX path_name_idx on path (path);
 
--- In File table
--- FileIndex can be 0 for FT_DELETED files
--- FileNameId can link to Filename.Name='' for directories
 CREATE TABLE file
 (
     fileid           bigserial   not null,
@@ -43,8 +40,12 @@ CREATE TABLE file
     primary key (fileid)
 );
 
-CREATE INDEX file_jobid_idx on file (jobid);
-CREATE INDEX file_fp_idx on file (filenameid, pathid);
+CREATE INDEX file_jpfid_idx on file (jobid, pathid, filenameid);
+
+-- If you are running PostgreSQL >= 8.2, you can remove this index
+-- the database engine is able to use the composite index
+-- and it increase performances during insertion
+CREATE INDEX file_jobid_idx on file(jobid);
 
 --
 -- Add this if you have a good number of job
@@ -57,7 +58,6 @@ CREATE INDEX file_fp_idx on file (filenameid, pathid);
 --
 -- CREATE INDEX file_pathid_idx on file(pathid);
 -- CREATE INDEX file_filenameid_idx on file(filenameid);
--- CREATE INDEX file_jpfid_idx on file (jobid, pathid, filenameid);
 
 CREATE TABLE job
 (
index 5634b0a8dfb10bc0f9eccbdb0f67faa7668f22ab..ff2ebb5f942ab307df60d88d0beb3429a34cad8c 100644 (file)
@@ -2,6 +2,12 @@
           
 General:
 
+22Sep09
+ebl  Remove the file_fp_idx index for Postgresql (FilenameId, PathId) on
+     File table. 
+     It is useless for common usage, and causes performance issues.
+     This index fragments over the time and the update cost grows
+     very quickly. (This index is not present on Mysql schema)
 17Sep09
 kes  Fix seg fault in ignoredir code
 15Sep09