Opened 13 years ago

Closed 13 years ago

#796 closed enhancement (fixed)

Don't create indexes on primary key columns for tables in the dynamic database

Reported by: Nicklas Nordborg Owned by: Nicklas Nordborg
Priority: critical Milestone: BASE 2.4.4
Component: core Version:
Keywords: Cc:

Description

The performance testing (#294) discovered that a lot of indexes are created in the dynamic database. It seems redundant since the columns are already part of the primary key of the table(s). Initial tests shows that removing the indexes, increases the performance by a factor of 2-10. Additional tests may be needed.

  • Extend the tests to larger data sets
  • Make sure nothing bad happens if using Postgres

If we find that it is safe to remove the indexes a utility for removing them from already existing tables must be created.

Change History (4)

comment:1 Changed 13 years ago by Nicklas Nordborg

(In [3810]) References #796: Don't create indexes on primary key columns for tables in the dynamic database

Indexes (other than primary keys) are no longer created for tables in the dynamic database.

comment:2 Changed 13 years ago by Nicklas Nordborg

(In [3811]) References #796: Don't create indexes on primary key columns for tables in the dynamic database

Added tool to remove indexes from dynamic db.

comment:3 Changed 13 years ago by Nicklas Nordborg

Owner: changed from everyone to Nicklas Nordborg
Status: newassigned

The tool can be used by:

cd <basedir>/bin
./dynamicdb.sh -v -dropindexes

It takes some time to execute. I had four tables (=one experiment) and it required ~10 minutes.

comment:4 Changed 13 years ago by jari

Resolution: fixed
Status: assignedclosed

The tests shows that the fixes improve performance, i.e., creation of root bioassays and filtering steps that took forever before will only take reasonable time now (in some cases the improvement in execution time is 100-fold).

Note: See TracTickets for help on using tickets.