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.