On Jan 20, 2008 3:32 PM, Alexander Batyrshin <[EMAIL PROTECTED]> wrote:
>  Hello everyone.
> I've discover performance degradation due to update 3.3.17 -> 3.5.4.
> This SQL query work very slowly:
>
>     DELETE FROM
>       population_stamp
>     WHERE
>       town_id IN (
>         SELECT DISTINCT town_id FROM population_stamp
>         EXCEPT
>         SELECT id FROM town
>       );
>
> Some info about tables:
>
>                 CREATE TABLE population_stamp(
>                         population int,
>                         town_id int,
>                         stamp_id int
>                 );
>                 CREATE INDEX popstamp_idx on population_stamp(stamp_id, 
> town_id);


Some new info.
Exactly this query work very-very slowly:
SELECT DISTINCT town_id FROM population_stamp;
3.5.4 explain:
addr  opcode          p1          p2          p3
----  --------------  ----------  ----------  ---------------------------------
0     OpenEphemeral   1           2           keyinfo(1,BINARY)
1     MemInt          0           2
2     MemInt          0           1
3     Goto            0           13
4     MemInt          1           2
5     Return          0           0
6     IfMemPos        1           8
7     Return          0           0
8     MemLoad         0           0
9     Callback        1           0
10    Return          0           0
11    MemNull         0           0
12    Return          0           0
13    Gosub           0           11
14    Goto            0           41
15    Integer         0           0
16    OpenRead        0           18
17    SetNumColumns   0           2
18    Rewind          0           25
19    StackDepth      -1          0
20    Column          0           1
21    Sequence        1           0
22    MakeRecord      2           0
23    IdxInsert       1           0
24    Next            0           19
25    Close           0           0
26    Sort            1           40
27    Column          1           0
28    MemStore        4           0
29    MemLoad         3           0
30    Eq              512         35          collseq(BINARY)
31    MemMove         3           4
32    Gosub           0           6
33    IfMemPos        2           40
34    Gosub           0           11
35    Column          1           0
36    MemStore        0           1
37    MemInt          1           1
38    Next            1           27
39    Gosub           0           6
40    Halt            0           0
41    Transaction     0           0
42    VerifyCookie    0           1619
43    TableLock       0           18          population_stamp
44    Goto            0           15
45    Noop            0           0


3.3.17 explain:
explain SELECT DISTINCT town_id FROM population_stamp;
addr  opcode          p1          p2          p3
----  --------------  ----------  ----------  ---------------------------------
0     OpenEphemeral   1           0           keyinfo(1,BINARY)
1     Goto            0           16
2     Integer         0           0
3     OpenRead        0           18
4     SetNumColumns   0           2
5     Rewind          0           14
6     Column          0           1
7     MakeRecord      -1          0
8     Distinct        1           11
9     Pop             2           0
10    Goto            0           13
11    IdxInsert       1           0
12    Callback        1           0
13    Next            0           6
14    Close           0           0
15    Halt            0           0
16    Transaction     0           0
17    VerifyCookie    0           1619
18    Goto            0           2
19    Noop            0           0



-- 
Alexander Batyrshin aka bash
bash = Biomechanica Artificial Sabotage Humanoid

-----------------------------------------------------------------------------
To unsubscribe, send email to [EMAIL PROTECTED]
-----------------------------------------------------------------------------

Reply via email to