Opened 16 years ago

Closed 16 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 by Nicklas Nordborg, 16 years ago

(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 by Nicklas Nordborg, 16 years ago

(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 by Nicklas Nordborg, 16 years ago

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 by Jari Häkkinen, 16 years ago

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.