The problem is with the following query:
UPDATE summa_records SET base='foobar' WHERE id IN ( SELECT parentId FROM summa_relations WHERE childId='horizon_2615441');
It takes in the order of 30s to run when we expect something in the order of 1-2ms.
We have a setup with two tables
summa_records: 1,5M rows
summa_relations: ~350000 rows
summa_records have and 'id' column that is also indexed and is the primary key. The summa_relations table holds mappings between different ids.
In our case the nested SELECT produces 2 hits, say, 'foo' and 'bar'. So the UPDATE on these two hits should be quite snappy. If we run the SELECT alone it runs in an instant, and also if we run with hardcoded ids for the IN clause:
UPDATE summa_records SET base='foobar' WHERE id IN ('foo', 'bar');
We have instant execution. I'll attach a query plan in a sec.
|Affects Version/s||10.4.2.0 [ 12313345 ]|
|Affects Version/s||10.3.1.4 [ 12312590 ]|
|Component/s||Performance [ 11709 ]|
|Component/s||SQL [ 11408 ]|
|Issue Type||Bug [ 1 ]||Improvement [ 4 ]|
|Issue & fix info||[Repro attached]|
|Workflow||jira [ 12449762 ]||Default workflow, editable Closed status [ 12796749 ]|