~ubuntu-branches/ubuntu/trusty/mysql-5.6/trusty

« back to all changes in this revision

Viewing changes to mysql-test/r/index_merge_update.result

  • Committer: Package Import Robot
  • Author(s): James Page
  • Date: 2014-02-12 11:54:27 UTC
  • Revision ID: package-import@ubuntu.com-20140212115427-oq6tfsqxl1wuwehi
Tags: upstream-5.6.15
ImportĀ upstreamĀ versionĀ 5.6.15

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
DROP TABLE IF EXISTS t1;
 
2
CREATE TABLE t1
 
3
(
 
4
key1 INT NOT NULL,
 
5
key2 INT NOT NULL,
 
6
key3 INT NOT NULL,
 
7
key4 INT NOT NULL,
 
8
key5 INT,
 
9
key6 INT,
 
10
key7 INT NOT NULL,
 
11
key8 INT NOT NULL,
 
12
INDEX i1(key1),
 
13
INDEX i2(key2),
 
14
INDEX i3(key3),
 
15
INDEX i4(key4),
 
16
INDEX i5(key5),
 
17
INDEX i6(key6)
 
18
);
 
19
ANALYZE TABLE t1;
 
20
Table   Op      Msg_type        Msg_text
 
21
test.t1 analyze status  OK
 
22
DROP TABLE IF EXISTS t2;
 
23
CREATE TABLE t2 LIKE t1;
 
24
INSERT INTO t2 SELECT * FROM t1;
 
25
ANALYZE TABLE t2;
 
26
Table   Op      Msg_type        Msg_text
 
27
test.t2 analyze status  Table is already up to date
 
28
EXPLAIN UPDATE t1 SET key6=7 WHERE key1=80 OR key4=49;
 
29
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
30
1       SIMPLE  t1      index_merge     i1,i4   i1,i4   4,4     NULL    #       Using union(i1,i4); Using where
 
31
SELECT COUNT(*), SUM(key6) FROM t1 WHERE key1=80 OR key4=49;
 
32
COUNT(*)        SUM(key6)
 
33
3       129
 
34
UPDATE t1 SET key6=7 WHERE key1=80 OR key4=49;
 
35
SELECT COUNT(*), SUM(key6) FROM t1 WHERE key1=80 OR key4=49;
 
36
COUNT(*)        SUM(key6)
 
37
3       21
 
38
EXPLAIN UPDATE t1 SET key1=18 WHERE (key3=80 AND key5 IS NULL) OR (key2=49 AND key6 IS NULL);
 
39
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
40
1       SIMPLE  t1      index_merge     i2,i3,i5,i6     i3,i5,i2        4,5,4   NULL    #       Using union(intersect(i3,i5),i2); Using where
 
41
SELECT COUNT(*), SUM(key1) FROM t1 WHERE (key3=80 AND key5 IS NULL) OR (key2=49 AND key6 IS NULL);
 
42
COUNT(*)        SUM(key1)
 
43
1       80
 
44
UPDATE t1 SET key1=18 WHERE (key3=80 AND key5 IS NULL) OR (key2=49 AND key6 IS NULL);
 
45
SELECT COUNT(*), SUM(key1) FROM t1 WHERE (key3=80 AND key5 IS NULL) OR (key2=49 AND key6 IS NULL);
 
46
COUNT(*)        SUM(key1)
 
47
1       18
 
48
EXPLAIN UPDATE t1 SET key3=18 WHERE (key4=42 AND key6 IS NOT NULL) OR (key1>4 AND key5 IS NULL) AND key2<>50;
 
49
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
50
1       SIMPLE  t1      index_merge     i1,i2,i4,i5,i6  i4,i5   4,5     NULL    #       Using union(i4,i5); Using where
 
51
SELECT COUNT(*), SUM(key3) FROM t1 WHERE (key4=42 AND key6 IS NOT NULL) OR (key1>4 AND key5 IS NULL) AND key2<>50;
 
52
COUNT(*)        SUM(key3)
 
53
10      287
 
54
UPDATE t1 SET key3=18 WHERE (key4=42 AND key6 IS NOT NULL) OR (key1>4 AND key5 IS NULL) AND key2<>50;
 
55
SELECT COUNT(*), SUM(key3) FROM t1 WHERE (key4=42 AND key6 IS NOT NULL) OR (key1>4 AND key5 IS NULL) AND key2<>50;
 
56
COUNT(*)        SUM(key3)
 
57
10      180
 
58
EXPLAIN UPDATE t1 SET key8=64 WHERE key2=80 OR key3=1025 OR key4 <=> NULL;
 
59
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
60
1       SIMPLE  t1      index_merge     i2,i3   i2,i3   4,4     NULL    #       Using union(i2,i3); Using where
 
61
SELECT COUNT(*), SUM(key8) FROM t1 WHERE key2=80 OR key3=1025 OR key4 <=> NULL;
 
62
COUNT(*)        SUM(key8)
 
63
3       1185
 
64
UPDATE t1 SET key8=64 WHERE key2=80 OR key3=1025 OR key4 <=> NULL;
 
65
SELECT COUNT(*), SUM(key8) FROM t1 WHERE key2=80 OR key3=1025 OR key4 <=> NULL;
 
66
COUNT(*)        SUM(key8)
 
67
3       192
 
68
EXPLAIN UPDATE t1 SET key8=18 WHERE (key1 < 3 OR key2 < 2) AND (key3 < 3 OR key4 < 3) AND (key5 < 2 OR key6 < 2);
 
69
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
70
1       SIMPLE  t1      index_merge     i1,i2,i3,i4,i5,i6       i5,i6   5,5     NULL    #       Using sort_union(i5,i6); Using where
 
71
SELECT COUNT(*), SUM(key8) FROM t1 WHERE (key1 < 3 OR key2 < 2) AND (key3 < 3 OR key4 < 3) AND (key5 < 2 OR key6 < 2);
 
72
COUNT(*)        SUM(key8)
 
73
1       1
 
74
UPDATE t1 SET key8=18 WHERE (key1 < 3 OR key2 < 2) AND (key3 < 3 OR key4 < 3) AND (key5 < 2 OR key6 < 2);
 
75
SELECT COUNT(*), SUM(key8) FROM t1 WHERE (key1 < 3 OR key2 < 2) AND (key3 < 3 OR key4 < 3) AND (key5 < 2 OR key6 < 2);
 
76
COUNT(*)        SUM(key8)
 
77
1       18
 
78
EXPLAIN UPDATE t1 SET key3=32 WHERE key1 between 25 AND 40 OR key2 between 15 AND 49;
 
79
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
80
1       SIMPLE  t1      index_merge     i1,i2   i1,i2   4,4     NULL    #       Using sort_union(i1,i2); Using where
 
81
SELECT COUNT(*), SUM(key3) FROM t1 WHERE key1 between 25 AND 40 OR key2 between 15 AND 49;
 
82
COUNT(*)        SUM(key3)
 
83
39      1168
 
84
UPDATE t1 SET key3=32 WHERE key1 between 25 AND 40 OR key2 between 15 AND 49;
 
85
SELECT COUNT(*), SUM(key3) FROM t1 WHERE key1 between 25 AND 40 OR key2 between 15 AND 49;
 
86
COUNT(*)        SUM(key3)
 
87
39      1248
 
88
EXPLAIN UPDATE t1 SET key7=25 WHERE key1 IN (15,70) OR key2 IN (15,70);
 
89
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
90
1       SIMPLE  t1      index_merge     i1,i2   i1,i2   4,4     NULL    #       Using sort_union(i1,i2); Using where
 
91
SELECT COUNT(*), SUM(key7) FROM t1 WHERE key1 IN (15,70) OR key2 IN (15,70);
 
92
COUNT(*)        SUM(key7)
 
93
2       85
 
94
UPDATE t1 SET key7=25 WHERE key1 IN (15,70) OR key2 IN (15,70);
 
95
SELECT COUNT(*), SUM(key7) FROM t1 WHERE key1 IN (15,70) OR key2 IN (15,70);
 
96
COUNT(*)        SUM(key7)
 
97
2       50
 
98
EXPLAIN UPDATE t1 SET key1=10 WHERE key5<5 OR key8<10 ORDER BY key1;
 
99
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
100
1       SIMPLE  t1      ALL     NULL    NULL    NULL    NULL    #       Using where; Using filesort
 
101
SELECT COUNT(*), SUM(key1) FROM t1 WHERE key5<5 OR key8<10 ORDER BY key1;
 
102
COUNT(*)        SUM(key1)
 
103
11      56
 
104
UPDATE t1 SET key1=10 WHERE key5<5 OR key8<10 ORDER BY key1;
 
105
SELECT COUNT(*), SUM(key1) FROM t1 WHERE key5<5 OR key8<10 ORDER BY key1;
 
106
COUNT(*)        SUM(key1)
 
107
11      110
 
108
EXPLAIN UPDATE t1 left join t2 ON (t2.key1=t2.key1) SET t1.key4=15 WHERE t1.key5=40 OR t1.key4=15;
 
109
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
110
1       SIMPLE  t1      index_merge     i4,i5   i5,i4   5,4     NULL    #       Using union(i5,i4); Using where
 
111
1       SIMPLE  t2      index   NULL    i1      4       NULL    #       Using where; Using index; Using join buffer (Block Nested Loop)
 
112
SELECT COUNT(*), SUM(key4) FROM t1;
 
113
COUNT(*)        SUM(key4)
 
114
2057    2098421
 
115
UPDATE t1 left join t2 ON (t2.key1=t2.key1) SET t1.key4=15 WHERE t1.key5=40 OR t1.key4=15;
 
116
SELECT COUNT(*), SUM(key4) FROM t1;
 
117
COUNT(*)        SUM(key4)
 
118
2057    2098396
 
119
EXPLAIN UPDATE t2 SET key7=7 WHERE (key3=28 OR key4=10)  AND key6 < ANY (SELECT key6 FROM t1 WHERE key1=10 OR key5=3);
 
120
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
121
1       PRIMARY t2      index_merge     i3,i4   i3,i4   4,4     NULL    #       Using union(i3,i4); Using where
 
122
2       SUBQUERY        t1      index_merge     i1,i5   i1,i5   4,5     NULL    #       Using union(i1,i5); Using where
 
123
SELECT COUNT(*), SUM(key7) FROM t2 WHERE (key3=28 OR key4=10)  AND key6 < ANY (SELECT key6 FROM t1 WHERE key1=10 OR key5=3);
 
124
COUNT(*)        SUM(key7)
 
125
0       NULL
 
126
UPDATE t2 SET key7=7 WHERE (key3=28 OR key4=10)  AND key6 < ANY (SELECT key6 FROM t1 WHERE key1=10 OR key5=3);
 
127
SELECT COUNT(*), SUM(key7) FROM t2 WHERE (key3=28 OR key4=10)  AND key6 < ANY (SELECT key6 FROM t1 WHERE key1=10 OR key5=3);
 
128
COUNT(*)        SUM(key7)
 
129
0       NULL
 
130
EXPLAIN UPDATE t2 SET key2=2 WHERE key1=25 OR key4=40 AND (key4 < SOME (SELECT key4 FROM t1 WHERE key1<5 OR key4<8) OR key1 < ANY (SELECT key1 FROM t1 WHERE key1<5 OR key4<7));
 
131
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
132
1       PRIMARY t2      index_merge     i1,i4   i1,i4   4,4     NULL    #       Using union(i1,i4); Using where
 
133
3       SUBQUERY        t1      index_merge     i1,i4   i1,i4   4,4     NULL    #       Using sort_union(i1,i4); Using where
 
134
2       SUBQUERY        t1      index_merge     i1,i4   i1,i4   4,4     NULL    #       Using sort_union(i1,i4); Using where
 
135
SELECT COUNT(*), SUM(key2) FROM t2 WHERE key1=25 OR key4=40 AND (key4 < SOME (SELECT key4 FROM t1 WHERE key1<5 OR key4<8) OR key1 < ANY (SELECT key1 FROM t1 WHERE key1<5 OR key4<7));
 
136
COUNT(*)        SUM(key2)
 
137
1       25
 
138
UPDATE t2 SET key2=2 WHERE key1=25 OR key4=40 AND (key4 < SOME (SELECT key4 FROM t1 WHERE key1<5 OR key4<8) OR key1 < ANY (SELECT key1 FROM t1 WHERE key1<5 OR key4<7));
 
139
SELECT COUNT(*), SUM(key2) FROM t2 WHERE key1=25 OR key4=40 AND (key4 < SOME (SELECT key4 FROM t1 WHERE key1<5 OR key4<8) OR key1 < ANY (SELECT key1 FROM t1 WHERE key1<5 OR key4<7));
 
140
COUNT(*)        SUM(key2)
 
141
1       2
 
142
EXPLAIN UPDATE t2 SET key3=20 WHERE EXISTS (SELECT * FROM t1 WHERE key6<3 OR key4<10);
 
143
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
144
1       PRIMARY t2      ALL     NULL    NULL    NULL    NULL    #       NULL
 
145
2       SUBQUERY        t1      index_merge     i4,i6   i6,i4   5,4     NULL    #       Using sort_union(i6,i4); Using where
 
146
SELECT COUNT(*), SUM(key3) FROM t2 WHERE EXISTS (SELECT * FROM t1 WHERE key6<3 OR key4<10);
 
147
COUNT(*)        SUM(key3)
 
148
2057    2098421
 
149
UPDATE t2 SET key3=20 WHERE EXISTS (SELECT * FROM t1 WHERE key6<3 OR key4<10);
 
150
SELECT COUNT(*), SUM(key3) FROM t2 WHERE EXISTS (SELECT * FROM t1 WHERE key6<3 OR key4<10);
 
151
COUNT(*)        SUM(key3)
 
152
2057    41140
 
153
EXPLAIN UPDATE t1 SET key8=50 WHERE key5=80 OR key6=49;
 
154
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
155
1       SIMPLE  t1      index_merge     i5,i6   i5,i6   5,5     NULL    #       Using union(i5,i6); Using where
 
156
SELECT COUNT(*), SUM(key8) FROM t1 WHERE key5=80 OR key6=49;
 
157
COUNT(*)        SUM(key8)
 
158
1       64
 
159
UPDATE t1 SET key8=50 WHERE key5=80 OR key6=49;
 
160
SELECT COUNT(*), SUM(key8) FROM t1 WHERE key5=80 OR key6=49;
 
161
COUNT(*)        SUM(key8)
 
162
1       50
 
163
DROP TABLE IF EXISTS t1;
 
164
CREATE TABLE t1
 
165
(
 
166
key1 INT NOT NULL,
 
167
key2 INT NOT NULL,
 
168
key3 INT NOT NULL,
 
169
key4 INT NOT NULL,
 
170
key5 INT,
 
171
key6 INT,
 
172
key7 INT NOT NULL,
 
173
key8 INT NOT NULL,
 
174
INDEX i1(key1,key2),
 
175
INDEX i2(key2,key1),
 
176
INDEX i3(key3,key4),
 
177
INDEX i4(key4,key3),
 
178
INDEX i5(key5,key6),
 
179
INDEX i6(key6,key5),
 
180
INDEX i7(key7,key8),
 
181
INDEX i8(key8,key7)
 
182
);
 
183
ANALYZE TABLE t1;
 
184
Table   Op      Msg_type        Msg_text
 
185
test.t1 analyze status  OK
 
186
DROP TABLE IF EXISTS t2;
 
187
CREATE TABLE t2 LIKE t1;
 
188
INSERT INTO t2 SELECT * FROM t1;
 
189
ANALYZE TABLE t2;
 
190
Table   Op      Msg_type        Msg_text
 
191
test.t2 analyze status  Table is already up to date
 
192
EXPLAIN UPDATE t1 SET key6=7 WHERE key1=80 OR key4=49;
 
193
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
194
1       SIMPLE  t1      index_merge     i1,i4   i1,i4   4,4     NULL    #       Using sort_union(i1,i4); Using where
 
195
SELECT COUNT(*), SUM(key6) FROM t1 WHERE key1=80 OR key4=49;
 
196
COUNT(*)        SUM(key6)
 
197
3       129
 
198
UPDATE t1 SET key6=7 WHERE key1=80 OR key4=49;
 
199
SELECT COUNT(*), SUM(key6) FROM t1 WHERE key1=80 OR key4=49;
 
200
COUNT(*)        SUM(key6)
 
201
3       21
 
202
EXPLAIN UPDATE t1 SET key1=18 WHERE (key3=80 AND key5 IS NULL) OR (key2=49 AND key6 IS NULL);
 
203
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
204
1       SIMPLE  t1      index_merge     i2,i3,i5,i6     i3,i2   4,4     NULL    #       Using sort_union(i3,i2); Using where; Using temporary
 
205
SELECT COUNT(*), SUM(key1) FROM t1 WHERE (key3=80 AND key5 IS NULL) OR (key2=49 AND key6 IS NULL);
 
206
COUNT(*)        SUM(key1)
 
207
1       80
 
208
UPDATE t1 SET key1=18 WHERE (key3=80 AND key5 IS NULL) OR (key2=49 AND key6 IS NULL);
 
209
SELECT COUNT(*), SUM(key1) FROM t1 WHERE (key3=80 AND key5 IS NULL) OR (key2=49 AND key6 IS NULL);
 
210
COUNT(*)        SUM(key1)
 
211
1       18
 
212
EXPLAIN UPDATE t1 SET key3=18 WHERE (key4=42 AND key6 IS NOT NULL) OR (key1>4 AND key5 IS NULL) AND key2<>50;
 
213
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
214
1       SIMPLE  t1      index_merge     i1,i2,i4,i5,i6  i4,i5   4,5     NULL    #       Using sort_union(i4,i5); Using where; Using temporary
 
215
SELECT COUNT(*), SUM(key3) FROM t1 WHERE (key4=42 AND key6 IS NOT NULL) OR (key1>4 AND key5 IS NULL) AND key2<>50;
 
216
COUNT(*)        SUM(key3)
 
217
10      287
 
218
UPDATE t1 SET key3=18 WHERE (key4=42 AND key6 IS NOT NULL) OR (key1>4 AND key5 IS NULL) AND key2<>50;
 
219
SELECT COUNT(*), SUM(key3) FROM t1 WHERE (key4=42 AND key6 IS NOT NULL) OR (key1>4 AND key5 IS NULL) AND key2<>50;
 
220
COUNT(*)        SUM(key3)
 
221
10      180
 
222
EXPLAIN UPDATE t1 SET key8=64 WHERE key2=80 OR key3=1025 OR key4 <=> NULL;
 
223
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
224
1       SIMPLE  t1      index_merge     i2,i3   i2,i3   4,4     NULL    #       Using sort_union(i2,i3); Using where
 
225
SELECT COUNT(*), SUM(key8) FROM t1 WHERE key2=80 OR key3=1025 OR key4 <=> NULL;
 
226
COUNT(*)        SUM(key8)
 
227
3       1185
 
228
UPDATE t1 SET key8=64 WHERE key2=80 OR key3=1025 OR key4 <=> NULL;
 
229
SELECT COUNT(*), SUM(key8) FROM t1 WHERE key2=80 OR key3=1025 OR key4 <=> NULL;
 
230
COUNT(*)        SUM(key8)
 
231
3       192
 
232
EXPLAIN UPDATE t1 SET key8=18 WHERE (key1 < 3 OR key2 < 2) AND (key3 < 3 OR key4 < 3) AND (key5 < 2 OR key6 < 2);
 
233
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
234
1       SIMPLE  t1      index_merge     i1,i2,i3,i4,i5,i6       i5,i6   5,5     NULL    #       Using sort_union(i5,i6); Using where
 
235
SELECT COUNT(*), SUM(key8) FROM t1 WHERE (key1 < 3 OR key2 < 2) AND (key3 < 3 OR key4 < 3) AND (key5 < 2 OR key6 < 2);
 
236
COUNT(*)        SUM(key8)
 
237
1       1
 
238
UPDATE t1 SET key8=18 WHERE (key1 < 3 OR key2 < 2) AND (key3 < 3 OR key4 < 3) AND (key5 < 2 OR key6 < 2);
 
239
SELECT COUNT(*), SUM(key8) FROM t1 WHERE (key1 < 3 OR key2 < 2) AND (key3 < 3 OR key4 < 3) AND (key5 < 2 OR key6 < 2);
 
240
COUNT(*)        SUM(key8)
 
241
1       18
 
242
EXPLAIN UPDATE t1 SET key3=32 WHERE key1 between 25 AND 40 OR key2 between 15 AND 49;
 
243
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
244
1       SIMPLE  t1      index_merge     i1,i2   i1,i2   4,4     NULL    #       Using sort_union(i1,i2); Using where
 
245
SELECT COUNT(*), SUM(key3) FROM t1 WHERE key1 between 25 AND 40 OR key2 between 15 AND 49;
 
246
COUNT(*)        SUM(key3)
 
247
39      1168
 
248
UPDATE t1 SET key3=32 WHERE key1 between 25 AND 40 OR key2 between 15 AND 49;
 
249
SELECT COUNT(*), SUM(key3) FROM t1 WHERE key1 between 25 AND 40 OR key2 between 15 AND 49;
 
250
COUNT(*)        SUM(key3)
 
251
39      1248
 
252
EXPLAIN UPDATE t1 SET key7=25 WHERE key1 IN (15,70) OR key2 IN (15,70);
 
253
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
254
1       SIMPLE  t1      index_merge     i1,i2   i1,i2   4,4     NULL    #       Using sort_union(i1,i2); Using where
 
255
SELECT COUNT(*), SUM(key7) FROM t1 WHERE key1 IN (15,70) OR key2 IN (15,70);
 
256
COUNT(*)        SUM(key7)
 
257
2       85
 
258
UPDATE t1 SET key7=25 WHERE key1 IN (15,70) OR key2 IN (15,70);
 
259
SELECT COUNT(*), SUM(key7) FROM t1 WHERE key1 IN (15,70) OR key2 IN (15,70);
 
260
COUNT(*)        SUM(key7)
 
261
2       50
 
262
EXPLAIN UPDATE t1 SET key1=10 WHERE key5<5 OR key8<10 ORDER BY key1;
 
263
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
264
1       SIMPLE  t1      index_merge     i5,i8   i5,i8   5,4     NULL    #       Using sort_union(i5,i8); Using where; Using filesort
 
265
SELECT COUNT(*), SUM(key1) FROM t1 WHERE key5<5 OR key8<10 ORDER BY key1;
 
266
COUNT(*)        SUM(key1)
 
267
11      56
 
268
UPDATE t1 SET key1=10 WHERE key5<5 OR key8<10 ORDER BY key1;
 
269
SELECT COUNT(*), SUM(key1) FROM t1 WHERE key5<5 OR key8<10 ORDER BY key1;
 
270
COUNT(*)        SUM(key1)
 
271
11      110
 
272
EXPLAIN UPDATE t1 left join t2 ON (t2.key1=t2.key1) SET t1.key4=15 WHERE t1.key5=40 OR t1.key4=15;
 
273
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
274
1       SIMPLE  t1      index_merge     i4,i5   i5,i4   5,4     NULL    #       Using sort_union(i5,i4); Using where
 
275
1       SIMPLE  t2      index   NULL    i1      8       NULL    #       Using where; Using index; Using join buffer (Block Nested Loop)
 
276
SELECT COUNT(*), SUM(key4) FROM t1;
 
277
COUNT(*)        SUM(key4)
 
278
2057    2098421
 
279
UPDATE t1 left join t2 ON (t2.key1=t2.key1) SET t1.key4=15 WHERE t1.key5=40 OR t1.key4=15;
 
280
SELECT COUNT(*), SUM(key4) FROM t1;
 
281
COUNT(*)        SUM(key4)
 
282
2057    2098396
 
283
EXPLAIN UPDATE t2 SET key7=7 WHERE (key3=28 OR key4=10)  AND key6 < ANY (SELECT key6 FROM t1 WHERE key1=10 OR key5=3);
 
284
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
285
1       PRIMARY t2      index_merge     i3,i4   i3,i4   4,4     NULL    #       Using sort_union(i3,i4); Using where
 
286
2       SUBQUERY        t1      index_merge     i1,i5   i1,i5   4,5     NULL    #       Using sort_union(i1,i5); Using where
 
287
SELECT COUNT(*), SUM(key7) FROM t2 WHERE (key3=28 OR key4=10)  AND key6 < ANY (SELECT key6 FROM t1 WHERE key1=10 OR key5=3);
 
288
COUNT(*)        SUM(key7)
 
289
0       NULL
 
290
UPDATE t2 SET key7=7 WHERE (key3=28 OR key4=10)  AND key6 < ANY (SELECT key6 FROM t1 WHERE key1=10 OR key5=3);
 
291
SELECT COUNT(*), SUM(key7) FROM t2 WHERE (key3=28 OR key4=10)  AND key6 < ANY (SELECT key6 FROM t1 WHERE key1=10 OR key5=3);
 
292
COUNT(*)        SUM(key7)
 
293
0       NULL
 
294
EXPLAIN UPDATE t2 SET key2=2 WHERE key1=25 OR key4=40 AND (key4 < SOME (SELECT key4 FROM t1 WHERE key1<5 OR key4<8) OR key1 < ANY (SELECT key1 FROM t1 WHERE key1<5 OR key4<7));
 
295
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
296
1       PRIMARY t2      index_merge     i1,i4   i1,i4   4,4     NULL    #       Using sort_union(i1,i4); Using where; Using temporary
 
297
3       SUBQUERY        t1      index_merge     i1,i4   i1,i4   4,4     NULL    #       Using sort_union(i1,i4); Using where
 
298
2       SUBQUERY        t1      index_merge     i1,i4   i1,i4   4,4     NULL    #       Using sort_union(i1,i4); Using where
 
299
SELECT COUNT(*), SUM(key2) FROM t2 WHERE key1=25 OR key4=40 AND (key4 < SOME (SELECT key4 FROM t1 WHERE key1<5 OR key4<8) OR key1 < ANY (SELECT key1 FROM t1 WHERE key1<5 OR key4<7));
 
300
COUNT(*)        SUM(key2)
 
301
1       25
 
302
UPDATE t2 SET key2=2 WHERE key1=25 OR key4=40 AND (key4 < SOME (SELECT key4 FROM t1 WHERE key1<5 OR key4<8) OR key1 < ANY (SELECT key1 FROM t1 WHERE key1<5 OR key4<7));
 
303
SELECT COUNT(*), SUM(key2) FROM t2 WHERE key1=25 OR key4=40 AND (key4 < SOME (SELECT key4 FROM t1 WHERE key1<5 OR key4<8) OR key1 < ANY (SELECT key1 FROM t1 WHERE key1<5 OR key4<7));
 
304
COUNT(*)        SUM(key2)
 
305
1       2
 
306
EXPLAIN UPDATE t2 SET key3=20 WHERE EXISTS (SELECT * FROM t1 WHERE key6<3 OR key4<10);
 
307
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
308
1       PRIMARY t2      ALL     NULL    NULL    NULL    NULL    #       NULL
 
309
2       SUBQUERY        t1      index_merge     i4,i6   i6,i4   5,4     NULL    #       Using sort_union(i6,i4); Using where
 
310
SELECT COUNT(*), SUM(key3) FROM t2 WHERE EXISTS (SELECT * FROM t1 WHERE key6<3 OR key4<10);
 
311
COUNT(*)        SUM(key3)
 
312
2057    2098421
 
313
UPDATE t2 SET key3=20 WHERE EXISTS (SELECT * FROM t1 WHERE key6<3 OR key4<10);
 
314
SELECT COUNT(*), SUM(key3) FROM t2 WHERE EXISTS (SELECT * FROM t1 WHERE key6<3 OR key4<10);
 
315
COUNT(*)        SUM(key3)
 
316
2057    41140
 
317
EXPLAIN UPDATE t1 SET key8=50 WHERE key5=80 OR key6=49;
 
318
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
319
1       SIMPLE  t1      index_merge     i5,i6   i5,i6   5,5     NULL    #       Using sort_union(i5,i6); Using where
 
320
SELECT COUNT(*), SUM(key8) FROM t1 WHERE key5=80 OR key6=49;
 
321
COUNT(*)        SUM(key8)
 
322
1       64
 
323
UPDATE t1 SET key8=50 WHERE key5=80 OR key6=49;
 
324
SELECT COUNT(*), SUM(key8) FROM t1 WHERE key5=80 OR key6=49;
 
325
COUNT(*)        SUM(key8)
 
326
1       50
 
327
DROP TABLE t1;
 
328
DROP TABLE t2;