From be7f1b12396bd50ddbbbfcfe4291998e4be7a45b Mon Sep 17 00:00:00 2001 From: "(no author)" <(no author)@cd1c1023-2f26-0410-ae45-c471fc1f0318> Date: Wed, 21 Nov 2007 15:00:14 +0000 Subject: [PATCH] index more tables to improve sql speed git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@748 cd1c1023-2f26-0410-ae45-c471fc1f0318 --- libraries/databaseTools.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/libraries/databaseTools.py b/libraries/databaseTools.py index 59e237ccf..800082641 100644 --- a/libraries/databaseTools.py +++ b/libraries/databaseTools.py @@ -1447,6 +1447,10 @@ class etpDatabase: return idpackage def getBaseData(self,idpackage): + + self.createBaseinfoIndex() + self.createExtrainfoIndex() + sql = """ SELECT baseinfo.atom, @@ -1910,6 +1914,8 @@ class etpDatabase: cache = self.fetchInfoCache(idpackage,'retrieveDependencies') if cache != None: return cache + + self.createDependenciesIndex() self.cursor.execute('SELECT dependenciesreference.dependency FROM dependencies,dependenciesreference WHERE idpackage = "'+str(idpackage)+'" and dependencies.iddependency = dependenciesreference.iddependency') deps = self.fetchall2set(self.cursor.fetchall()) @@ -2783,6 +2789,19 @@ class etpDatabase: if self.dbname != "etpdb": self.cursor.execute('CREATE INDEX IF NOT EXISTS contentindex ON content ( file )') + def createBaseinfoIndex(self): + if self.dbname != "etpdb": + self.cursor.execute('CREATE INDEX IF NOT EXISTS baseindex ON baseinfo ( idpackage, atom, name, version, slot, branch, revision )') + + def createDependenciesIndex(self): + if self.dbname != "etpdb": + self.cursor.execute('CREATE INDEX IF NOT EXISTS dependenciesindex ON dependencies ( idpackage, iddependency )') + self.cursor.execute('CREATE INDEX IF NOT EXISTS dependenciesreferenceindex ON dependenciesreference ( iddependency, dependency )') + + def createExtrainfoIndex(self): + if self.dbname != "etpdb": + self.cursor.execute('CREATE INDEX IF NOT EXISTS extrainfoindex ON extrainfo ( idpackage, description, homepage, download, digest, datecreation, size )') + def regenerateCountersTable(self, output = False): self.createCountersTable() # assign a counter to an idpackage