Problem indexing add Simple Table Inherance

I have a simple table inherance, with an upper class GeneralElement. A
class that inherits is Activity:
class Activity < GeneralElement

end

The GeneralElement table is very big (about 2.000.000 rows!). Other
classes that inherit from GeneralElement return queries very fast, but
Activity.last is very slow. I have added indexes to id and type, but it
has no effect. What can I do?

I’ll appreciate any help

On Mar 11, 4:50 am, John S. [email protected] wrote:

I have a simple table inherance, with an upper class GeneralElement. A
class that inherits is Activity:
class Activity < GeneralElement

end

The GeneralElement table is very big (about 2.000.000 rows!). Other
classes that inherit from GeneralElement return queries very fast, but
Activity.last is very slow. I have added indexes to id and type, but it
has no effect. What can I do?

You may want to grab the query that Activity.last is using, and try
running it through ‘EXPLAIN’ to see what it’s looking for. Have you
defined an order (via default_scope, for instance) on Activity? You
might need to have an index on that field together with ‘type’ to get
right behavior.

–Matt J.

Matt J. wrote:

On Mar 11, 4:50�am, John S. [email protected] wrote:

I have a simple table inherance, with an upper class GeneralElement. A
class that inherits is Activity:
class Activity < GeneralElement

end

The GeneralElement table is very big (about 2.000.000 rows!). Other
classes that inherit from GeneralElement return queries very fast, but
Activity.last is very slow. I have added indexes to id and type, but it
has no effect. What can I do?

You may want to grab the query that Activity.last is using, and try
running it through ‘EXPLAIN’ to see what it’s looking for. Have you
defined an order (via default_scope, for instance) on Activity? You
might need to have an index on that field together with ‘type’ to get
right behavior.

–Matt J.

I have added an index to the type column; but maybe it’s possible to add
a special index to both the id and type column at the same time. How
could I do this?

On Mar 14, 6:39 pm, John S. [email protected] wrote:

Activity.last is very slow. I have added indexes to id and type, but it
I have added an index to the type column; but maybe it’s possible to add
a special index to both the id and type column at the same time. How
could I do this?

add_index will accept an array of columns:

add_index :general_elements, [:type, :id]

–Matt J.