mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 03:52:35 +01:00
1943 lines
69 KiB
Text
1943 lines
69 KiB
Text
set names utf8;
|
|
CREATE DATABASE world;
|
|
use world;
|
|
CREATE TABLE Country (
|
|
Code char(3) NOT NULL default '',
|
|
Name char(52) NOT NULL default '',
|
|
SurfaceArea float(10,2) NOT NULL default '0.00',
|
|
Population int(11) NOT NULL default '0',
|
|
Capital int(11) default NULL,
|
|
PRIMARY KEY (Code),
|
|
UNIQUE INDEX (Name)
|
|
);
|
|
CREATE TABLE City (
|
|
ID int(11) NOT NULL auto_increment,
|
|
Name char(35) NOT NULL default '',
|
|
Country char(3) NOT NULL default '',
|
|
Population int(11) NOT NULL default '0',
|
|
PRIMARY KEY (ID),
|
|
INDEX (Population),
|
|
INDEX (Country)
|
|
);
|
|
CREATE TABLE CountryLanguage (
|
|
Country char(3) NOT NULL default '',
|
|
Language char(30) NOT NULL default '',
|
|
Percentage float(3,1) NOT NULL default '0.0',
|
|
PRIMARY KEY (Country, Language),
|
|
INDEX (Percentage)
|
|
);
|
|
SELECT COUNT(*) FROM Country;
|
|
COUNT(*)
|
|
239
|
|
SELECT COUNT(*) FROM City;
|
|
COUNT(*)
|
|
4079
|
|
SELECT COUNT(*) FROM CountryLanguage;
|
|
COUNT(*)
|
|
984
|
|
CREATE INDEX Name ON City(Name);
|
|
set session optimizer_switch='index_merge_sort_intersection=off';
|
|
EXPLAIN
|
|
SELECT * FROM City
|
|
WHERE (Population >= 100000 OR Name LIKE 'P%' OR Population < 100000);
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City ALL Population,Name NULL NULL NULL 4079 Using where
|
|
EXPLAIN
|
|
SELECT * FROM City
|
|
WHERE (Population >= 100000 OR Name LIKE 'P%') AND Country='CAN' OR
|
|
(Population < 100000 OR Name Like 'T%') AND Country='ARG';
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City range Population,Country,Name Country 3 NULL 104 Using index condition; Using where
|
|
EXPLAIN
|
|
SELECT * FROM City
|
|
WHERE Population < 200000 AND Name LIKE 'P%' AND
|
|
(Population > 300000 OR Name LIKE 'T%') AND
|
|
(Population < 100000 OR Name LIKE 'Pa%');
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City range Population,Name Name 35 NULL 135 Using index condition; Using where
|
|
EXPLAIN
|
|
SELECT * FROM City
|
|
WHERE Population > 100000 AND Name LIKE 'Aba%' OR
|
|
Country IN ('CAN', 'ARG') AND ID BETWEEN 120 AND 130 OR
|
|
Country <= 'ALB' AND Name LIKE 'L%' OR
|
|
ID BETWEEN 3807 AND 3810;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City index_merge PRIMARY,Population,Country,Name Name,PRIMARY,Country 35,4,3 NULL 30 Using sort_union(Name,PRIMARY,Country); Using where
|
|
EXPLAIN
|
|
SELECT * FROM City
|
|
WHERE (Population > 101000 AND Population < 115000);
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City range Population Population 4 NULL 459 Using index condition
|
|
EXPLAIN
|
|
SELECT * FROM City
|
|
WHERE (Population > 101000 AND Population < 102000);
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City range Population Population 4 NULL 39 Using index condition
|
|
EXPLAIN
|
|
SELECT * FROM City
|
|
WHERE ((Name > 'Ca' AND Name < 'Cf') OR (Country > 'E' AND Country < 'F'));
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City index_merge Country,Name Name,Country 35,3 NULL 172 Using sort_union(Name,Country); Using where
|
|
EXPLAIN
|
|
SELECT * FROM City
|
|
WHERE ((Name > 'Ca' AND Name < 'Cf') OR (Country > 'E' AND Country < 'F'))
|
|
AND (Population > 101000 AND Population < 115000);
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City index_merge Population,Country,Name Name,Country 35,3 NULL 172 Using sort_union(Name,Country); Using where
|
|
EXPLAIN
|
|
SELECT * FROM City
|
|
WHERE ((Name > 'Ca' AND Name < 'Cf') OR (Country > 'E' AND Country < 'F'))
|
|
AND (Population > 101000 AND Population < 102000);
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City range Population,Country,Name Population 4 NULL 39 Using index condition; Using where
|
|
SELECT * FROM City USE INDEX ()
|
|
WHERE ((Name > 'Ca' AND Name < 'Cf') OR (Country > 'E' AND Country < 'F'))
|
|
AND (Population > 101000 AND Population < 115000);
|
|
ID Name Country Population
|
|
403 Catanduva BRA 107761
|
|
412 Cachoeirinha BRA 103240
|
|
636 Bilbays EGY 113608
|
|
637 Mit Ghamr EGY 101801
|
|
701 Tarragona ESP 113016
|
|
702 Lleida (Lérida) ESP 112207
|
|
703 Jaén ESP 109247
|
|
704 Ourense (Orense) ESP 109120
|
|
705 Mataró ESP 104095
|
|
706 Algeciras ESP 103106
|
|
707 Marbella ESP 101144
|
|
759 Gonder ETH 112249
|
|
869 Cabuyao PHL 106630
|
|
870 Calapan PHL 105910
|
|
873 Cauayan PHL 103952
|
|
1844 Cape Breton CAN 114733
|
|
1847 Cambridge CAN 109186
|
|
2908 Cajamarca PER 108009
|
|
3003 Caen FRA 113987
|
|
3411 Ceyhan TUR 102412
|
|
3571 Calabozo VEN 107146
|
|
3786 Cam Ranh VNM 114041
|
|
3792 Tartu EST 101246
|
|
4002 Carrollton USA 109576
|
|
4027 Cape Coral USA 102286
|
|
4032 Cambridge USA 101355
|
|
SELECT * FROM City
|
|
WHERE ((Name > 'Ca' AND Name < 'Cf') OR (Country > 'E' AND Country < 'F'))
|
|
AND (Population > 101000 AND Population < 115000);
|
|
ID Name Country Population
|
|
403 Catanduva BRA 107761
|
|
412 Cachoeirinha BRA 103240
|
|
636 Bilbays EGY 113608
|
|
637 Mit Ghamr EGY 101801
|
|
701 Tarragona ESP 113016
|
|
702 Lleida (Lérida) ESP 112207
|
|
703 Jaén ESP 109247
|
|
704 Ourense (Orense) ESP 109120
|
|
705 Mataró ESP 104095
|
|
706 Algeciras ESP 103106
|
|
707 Marbella ESP 101144
|
|
759 Gonder ETH 112249
|
|
869 Cabuyao PHL 106630
|
|
870 Calapan PHL 105910
|
|
873 Cauayan PHL 103952
|
|
1844 Cape Breton CAN 114733
|
|
1847 Cambridge CAN 109186
|
|
2908 Cajamarca PER 108009
|
|
3003 Caen FRA 113987
|
|
3411 Ceyhan TUR 102412
|
|
3571 Calabozo VEN 107146
|
|
3786 Cam Ranh VNM 114041
|
|
3792 Tartu EST 101246
|
|
4002 Carrollton USA 109576
|
|
4027 Cape Coral USA 102286
|
|
4032 Cambridge USA 101355
|
|
SELECT * FROM City USE INDEX ()
|
|
WHERE ((Name > 'Ca' AND Name < 'Cf') OR (Country > 'E' AND Country < 'F'))
|
|
AND (Population > 101000 AND Population < 102000);
|
|
ID Name Country Population
|
|
637 Mit Ghamr EGY 101801
|
|
707 Marbella ESP 101144
|
|
3792 Tartu EST 101246
|
|
4032 Cambridge USA 101355
|
|
SELECT * FROM City
|
|
WHERE ((Name > 'Ca' AND Name < 'Cf') OR (Country > 'E' AND Country < 'F'))
|
|
AND (Population > 101000 AND Population < 102000);
|
|
ID Name Country Population
|
|
707 Marbella ESP 101144
|
|
3792 Tartu EST 101246
|
|
4032 Cambridge USA 101355
|
|
637 Mit Ghamr EGY 101801
|
|
EXPLAIN
|
|
SELECT * FROM City WHERE (Name < 'Ac');
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City range Name Name 35 NULL 13 Using index condition
|
|
EXPLAIN
|
|
SELECT * FROM City WHERE (Name < 'Bb');
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City range Name Name 35 NULL 207 Using index condition
|
|
EXPLAIN
|
|
SELECT * FROM City WHERE (Country > 'A' AND Country < 'B');
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City range Country Country 3 NULL 104 Using index condition
|
|
EXPLAIN
|
|
SELECT * FROM City WHERE (Name BETWEEN 'P' AND 'Pb');
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City range Name Name 35 NULL 39 Using index condition
|
|
EXPLAIN
|
|
SELECT * FROM City WHERE (Name BETWEEN 'P' AND 'S');
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City range Name Name 35 NULL 221 Using index condition
|
|
EXPLAIN
|
|
SELECT * FROM City WHERE (Population > 101000 AND Population < 110000);
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City range Population Population 4 NULL 328 Using index condition
|
|
EXPLAIN
|
|
SELECT * FROM City WHERE (Population > 103000 AND Population < 104000);
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City range Population Population 4 NULL 37 Using index condition
|
|
EXPLAIN
|
|
SELECT * FROM City
|
|
WHERE (Name < 'Ac' AND (Country > 'A' AND Country < 'B')) OR
|
|
(Name BETWEEN 'P' AND 'Pb' AND (Population > 101000 AND Population < 110000));
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City range Population,Country,Name Name 35 NULL 52 Using index condition; Using where
|
|
EXPLAIN
|
|
SELECT * FROM City
|
|
WHERE (Name < 'Ac' AND (Country > 'A' AND Country < 'B')) OR
|
|
(Name BETWEEN 'P' AND 'S' AND (Population > 103000 AND Population < 104000));
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City index_merge Population,Country,Name Name,Population 35,4 NULL 50 Using sort_union(Name,Population); Using where
|
|
EXPLAIN
|
|
SELECT * FROM City
|
|
WHERE (Name < 'Bb' AND (Country > 'A' AND Country < 'B')) OR
|
|
(Name BETWEEN 'P' AND 'Pb' AND (Population > 101000 AND Population < 110000));
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City index_merge Population,Country,Name Country,Name 3,35 NULL 143 Using sort_union(Country,Name); Using where
|
|
EXPLAIN
|
|
SELECT * FROM City
|
|
WHERE (Name < 'Bb' AND (Country > 'A' AND Country < 'B')) OR
|
|
(Name BETWEEN 'P' AND 'S' AND (Population > 103000 AND Population < 104000));
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City index_merge Population,Country,Name Country,Population 3,4 NULL 141 Using sort_union(Country,Population); Using where
|
|
SELECT * FROM City USE INDEX ()
|
|
WHERE (Name < 'Ac' AND (Country > 'A' AND Country < 'B')) OR
|
|
(Name BETWEEN 'P' AND 'Pb' AND (Population > 101000 AND Population < 110000));
|
|
ID Name Country Population
|
|
65 Abu Dhabi ARE 398695
|
|
168 Pabna BGD 103277
|
|
189 Parakou BEN 103577
|
|
750 Paarl ZAF 105768
|
|
2865 Pak Pattan PAK 107800
|
|
SELECT * FROM City
|
|
WHERE (Name < 'Ac' AND (Country > 'A' AND Country < 'B')) OR
|
|
(Name BETWEEN 'P' AND 'Pb' AND (Population > 101000 AND Population < 110000));
|
|
ID Name Country Population
|
|
65 Abu Dhabi ARE 398695
|
|
750 Paarl ZAF 105768
|
|
168 Pabna BGD 103277
|
|
2865 Pak Pattan PAK 107800
|
|
189 Parakou BEN 103577
|
|
SELECT * FROM City USE INDEX ()
|
|
WHERE (Name < 'Ac' AND (Country > 'A' AND Country < 'B')) OR
|
|
(Name BETWEEN 'P' AND 'S' AND (Population > 103000 AND Population < 104000));
|
|
ID Name Country Population
|
|
65 Abu Dhabi ARE 398695
|
|
168 Pabna BGD 103277
|
|
189 Parakou BEN 103577
|
|
1003 Pemalang IDN 103500
|
|
2663 Río Bravo MEX 103901
|
|
SELECT * FROM City
|
|
WHERE (Name < 'Ac' AND (Country > 'A' AND Country < 'B')) OR
|
|
(Name BETWEEN 'P' AND 'S' AND (Population > 103000 AND Population < 104000));
|
|
ID Name Country Population
|
|
65 Abu Dhabi ARE 398695
|
|
168 Pabna BGD 103277
|
|
189 Parakou BEN 103577
|
|
1003 Pemalang IDN 103500
|
|
2663 Río Bravo MEX 103901
|
|
SELECT * FROM City USE INDEX ()
|
|
WHERE (Name < 'Bb' AND (Country > 'A' AND Country < 'B')) OR
|
|
(Name BETWEEN 'P' AND 'Pb' AND (Population > 101000 AND Population < 110000));
|
|
ID Name Country Population
|
|
55 Andorra la Vella AND 21189
|
|
65 Abu Dhabi ARE 398695
|
|
67 al-Ayn ARE 225970
|
|
68 Ajman ARE 114395
|
|
75 Almirante Brown ARG 538918
|
|
85 Avellaneda ARG 353046
|
|
96 Bahía Blanca ARG 239810
|
|
134 Adelaide AUS 978100
|
|
144 Baku AZE 1787800
|
|
168 Pabna BGD 103277
|
|
189 Parakou BEN 103577
|
|
750 Paarl ZAF 105768
|
|
2865 Pak Pattan PAK 107800
|
|
SELECT * FROM City
|
|
WHERE (Name < 'Bb' AND (Country > 'A' AND Country < 'B')) OR
|
|
(Name BETWEEN 'P' AND 'Pb' AND (Population > 101000 AND Population < 110000));
|
|
ID Name Country Population
|
|
55 Andorra la Vella AND 21189
|
|
65 Abu Dhabi ARE 398695
|
|
67 al-Ayn ARE 225970
|
|
68 Ajman ARE 114395
|
|
75 Almirante Brown ARG 538918
|
|
85 Avellaneda ARG 353046
|
|
96 Bahía Blanca ARG 239810
|
|
134 Adelaide AUS 978100
|
|
144 Baku AZE 1787800
|
|
168 Pabna BGD 103277
|
|
189 Parakou BEN 103577
|
|
750 Paarl ZAF 105768
|
|
2865 Pak Pattan PAK 107800
|
|
SELECT * FROM City USE INDEX ()
|
|
WHERE (Name < 'Bb' AND (Country > 'A' AND Country < 'B')) OR
|
|
(Name BETWEEN 'P' AND 'S' AND (Population > 103000 AND Population < 104000));
|
|
ID Name Country Population
|
|
55 Andorra la Vella AND 21189
|
|
65 Abu Dhabi ARE 398695
|
|
67 al-Ayn ARE 225970
|
|
68 Ajman ARE 114395
|
|
75 Almirante Brown ARG 538918
|
|
85 Avellaneda ARG 353046
|
|
96 Bahía Blanca ARG 239810
|
|
134 Adelaide AUS 978100
|
|
144 Baku AZE 1787800
|
|
168 Pabna BGD 103277
|
|
189 Parakou BEN 103577
|
|
1003 Pemalang IDN 103500
|
|
2663 Río Bravo MEX 103901
|
|
SELECT * FROM City
|
|
WHERE (Name < 'Bb' AND (Country > 'A' AND Country < 'B')) OR
|
|
(Name BETWEEN 'P' AND 'S' AND (Population > 103000 AND Population < 104000));
|
|
ID Name Country Population
|
|
55 Andorra la Vella AND 21189
|
|
65 Abu Dhabi ARE 398695
|
|
67 al-Ayn ARE 225970
|
|
68 Ajman ARE 114395
|
|
75 Almirante Brown ARG 538918
|
|
85 Avellaneda ARG 353046
|
|
96 Bahía Blanca ARG 239810
|
|
134 Adelaide AUS 978100
|
|
144 Baku AZE 1787800
|
|
168 Pabna BGD 103277
|
|
189 Parakou BEN 103577
|
|
1003 Pemalang IDN 103500
|
|
2663 Río Bravo MEX 103901
|
|
EXPLAIN
|
|
SELECT * FROM City WHERE (ID < 10) OR (ID BETWEEN 100 AND 110);
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City range PRIMARY PRIMARY 4 NULL 20 Using index condition
|
|
EXPLAIN
|
|
SELECT * FROM City WHERE (ID < 200) OR (ID BETWEEN 100 AND 200);
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City range PRIMARY PRIMARY 4 NULL 200 Using index condition
|
|
EXPLAIN
|
|
SELECT * FROM City WHERE (ID < 600) OR (ID BETWEEN 900 AND 1500);
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City ALL PRIMARY NULL NULL NULL 4079 Using where
|
|
EXPLAIN
|
|
SELECT * FROM City WHERE Country > 'A' AND Country < 'ARG';
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City range Country Country 3 NULL 20 Using index condition
|
|
EXPLAIN
|
|
SELECT * FROM City WHERE Name LIKE 'H%' OR Name LIKE 'P%' ;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City range Name Name 35 NULL 223 Using index condition
|
|
EXPLAIN
|
|
SELECT * FROM City WHERE Name LIKE 'Ha%' OR Name LIKE 'Pa%' ;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City range Name Name 35 NULL 72 Using index condition
|
|
EXPLAIN
|
|
SELECT * FROM City
|
|
WHERE ((ID < 10) AND (Name LIKE 'H%' OR (Country > 'A' AND Country < 'ARG')))
|
|
OR ((ID BETWEEN 100 AND 110) AND
|
|
(Name LIKE 'P%' OR (Population > 103000 AND Population < 104000)));
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City range PRIMARY,Population,Country,Name PRIMARY 4 NULL 20 Using index condition; Using where
|
|
EXPLAIN
|
|
SELECT * FROM City
|
|
WHERE ((ID < 800) AND (Name LIKE 'Ha%' OR (Country > 'A' AND Country < 'ARG')))
|
|
OR ((ID BETWEEN 900 AND 1500) AND
|
|
(Name LIKE 'Pa%' OR (Population > 103000 AND Population < 105000)));
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City index_merge PRIMARY,Population,Country,Name Name,Country,Population 35,3,4 NULL 151 Using sort_union(Name,Country,Population); Using where
|
|
EXPLAIN
|
|
SELECT * FROM City
|
|
WHERE ((ID < 200) AND (Name LIKE 'Ha%' OR (Country > 'A' AND Country < 'ARG')))
|
|
OR ((ID BETWEEN 100 AND 200) AND
|
|
(Name LIKE 'Pa%' OR (Population > 103200 AND Population < 104000)));
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City index_merge PRIMARY,Population,Country,Name Name,Country,Population 35,3,4 NULL 124 Using sort_union(Name,Country,Population); Using where
|
|
SELECT * FROM City USE INDEX ()
|
|
WHERE ((ID < 10) AND (Name LIKE 'H%' OR (Country > 'A' AND Country < 'ARG')))
|
|
OR ((ID BETWEEN 100 AND 110) AND
|
|
(Name LIKE 'P%' OR (Population > 103000 AND Population < 104000)));
|
|
ID Name Country Population
|
|
1 Kabul AFG 1780000
|
|
2 Qandahar AFG 237500
|
|
3 Herat AFG 186800
|
|
4 Mazar-e-Sharif AFG 127800
|
|
7 Haag NLD 440900
|
|
100 Paraná ARG 207041
|
|
102 Posadas ARG 201273
|
|
SELECT * FROM City
|
|
WHERE ((ID < 10) AND (Name LIKE 'H%' OR (Country > 'A' AND Country < 'ARG')))
|
|
OR ((ID BETWEEN 100 AND 110) AND
|
|
(Name LIKE 'P%' OR (Population > 103000 AND Population < 104000)));
|
|
ID Name Country Population
|
|
1 Kabul AFG 1780000
|
|
2 Qandahar AFG 237500
|
|
3 Herat AFG 186800
|
|
4 Mazar-e-Sharif AFG 127800
|
|
7 Haag NLD 440900
|
|
100 Paraná ARG 207041
|
|
102 Posadas ARG 201273
|
|
SELECT * FROM City USE INDEX()
|
|
WHERE ((ID < 800) AND (Name LIKE 'Ha%' OR (Country > 'A' AND Country < 'ARG')))
|
|
OR ((ID BETWEEN 900 AND 1500) AND
|
|
(Name LIKE 'Pa%' OR (Population > 103000 AND Population < 104000)));
|
|
ID Name Country Population
|
|
1 Kabul AFG 1780000
|
|
2 Qandahar AFG 237500
|
|
3 Herat AFG 186800
|
|
4 Mazar-e-Sharif AFG 127800
|
|
7 Haag NLD 440900
|
|
16 Haarlem NLD 148772
|
|
25 Haarlemmermeer NLD 110722
|
|
33 Willemstad ANT 2345
|
|
34 Tirana ALB 270000
|
|
55 Andorra la Vella AND 21189
|
|
56 Luanda AGO 2022000
|
|
57 Huambo AGO 163100
|
|
58 Lobito AGO 130000
|
|
59 Benguela AGO 128300
|
|
60 Namibe AGO 118200
|
|
61 South Hill AIA 961
|
|
62 The Valley AIA 595
|
|
64 Dubai ARE 669181
|
|
65 Abu Dhabi ARE 398695
|
|
66 Sharja ARE 320095
|
|
67 al-Ayn ARE 225970
|
|
68 Ajman ARE 114395
|
|
129 Oranjestad ABW 29034
|
|
191 Hamilton BMU 1200
|
|
528 Hartlepool GBR 92000
|
|
529 Halifax GBR 91069
|
|
914 Sekondi-Takoradi GHA 103653
|
|
943 Palembang IDN 1222764
|
|
950 Padang IDN 534474
|
|
983 Palu IDN 142800
|
|
984 Pasuruan IDN 134019
|
|
991 Pangkal Pinang IDN 124000
|
|
1003 Pemalang IDN 103500
|
|
1004 Klaten IDN 103300
|
|
1007 Palangka Raya IDN 99693
|
|
1020 Padang Sidempuan IDN 91200
|
|
1045 Patna IND 917243
|
|
1114 Panihati IND 275990
|
|
1129 Patiala IND 238368
|
|
1142 Panipat IND 215218
|
|
1159 Parbhani IND 190255
|
|
1231 Pali IND 136842
|
|
1263 Pathankot IND 123930
|
|
1265 Palghat (Palakkad) IND 123289
|
|
1293 Pallavaram IND 111866
|
|
1319 Tellicherry (Thalassery) IND 103579
|
|
1339 Palayankottai IND 97662
|
|
1345 Patan IND 96109
|
|
1436 Marv Dasht IRN 103579
|
|
1468 Palermo ITA 683794
|
|
1478 Padova ITA 211391
|
|
1484 Parma ITA 168717
|
|
SELECT * FROM City
|
|
WHERE ((ID < 800) AND (Name LIKE 'Ha%' OR (Country > 'A' AND Country < 'ARG')))
|
|
OR ((ID BETWEEN 900 AND 1500) AND
|
|
(Name LIKE 'Pa%' OR (Population > 103000 AND Population < 104000)));
|
|
ID Name Country Population
|
|
1 Kabul AFG 1780000
|
|
2 Qandahar AFG 237500
|
|
3 Herat AFG 186800
|
|
4 Mazar-e-Sharif AFG 127800
|
|
7 Haag NLD 440900
|
|
16 Haarlem NLD 148772
|
|
25 Haarlemmermeer NLD 110722
|
|
33 Willemstad ANT 2345
|
|
34 Tirana ALB 270000
|
|
55 Andorra la Vella AND 21189
|
|
56 Luanda AGO 2022000
|
|
57 Huambo AGO 163100
|
|
58 Lobito AGO 130000
|
|
59 Benguela AGO 128300
|
|
60 Namibe AGO 118200
|
|
61 South Hill AIA 961
|
|
62 The Valley AIA 595
|
|
64 Dubai ARE 669181
|
|
65 Abu Dhabi ARE 398695
|
|
66 Sharja ARE 320095
|
|
67 al-Ayn ARE 225970
|
|
68 Ajman ARE 114395
|
|
129 Oranjestad ABW 29034
|
|
191 Hamilton BMU 1200
|
|
528 Hartlepool GBR 92000
|
|
529 Halifax GBR 91069
|
|
914 Sekondi-Takoradi GHA 103653
|
|
943 Palembang IDN 1222764
|
|
950 Padang IDN 534474
|
|
983 Palu IDN 142800
|
|
984 Pasuruan IDN 134019
|
|
991 Pangkal Pinang IDN 124000
|
|
1003 Pemalang IDN 103500
|
|
1004 Klaten IDN 103300
|
|
1007 Palangka Raya IDN 99693
|
|
1020 Padang Sidempuan IDN 91200
|
|
1045 Patna IND 917243
|
|
1114 Panihati IND 275990
|
|
1129 Patiala IND 238368
|
|
1142 Panipat IND 215218
|
|
1159 Parbhani IND 190255
|
|
1231 Pali IND 136842
|
|
1263 Pathankot IND 123930
|
|
1265 Palghat (Palakkad) IND 123289
|
|
1293 Pallavaram IND 111866
|
|
1319 Tellicherry (Thalassery) IND 103579
|
|
1339 Palayankottai IND 97662
|
|
1345 Patan IND 96109
|
|
1436 Marv Dasht IRN 103579
|
|
1468 Palermo ITA 683794
|
|
1478 Padova ITA 211391
|
|
1484 Parma ITA 168717
|
|
SELECT * FROM City USE INDEX ()
|
|
WHERE ((ID < 200) AND (Name LIKE 'Ha%' OR (Country > 'A' AND Country < 'ARG')))
|
|
OR ((ID BETWEEN 100 AND 200) AND
|
|
(Name LIKE 'Pa%' OR (Population > 103000 AND Population < 104000)));
|
|
ID Name Country Population
|
|
1 Kabul AFG 1780000
|
|
2 Qandahar AFG 237500
|
|
3 Herat AFG 186800
|
|
4 Mazar-e-Sharif AFG 127800
|
|
7 Haag NLD 440900
|
|
16 Haarlem NLD 148772
|
|
25 Haarlemmermeer NLD 110722
|
|
33 Willemstad ANT 2345
|
|
34 Tirana ALB 270000
|
|
55 Andorra la Vella AND 21189
|
|
56 Luanda AGO 2022000
|
|
57 Huambo AGO 163100
|
|
58 Lobito AGO 130000
|
|
59 Benguela AGO 128300
|
|
60 Namibe AGO 118200
|
|
61 South Hill AIA 961
|
|
62 The Valley AIA 595
|
|
64 Dubai ARE 669181
|
|
65 Abu Dhabi ARE 398695
|
|
66 Sharja ARE 320095
|
|
67 al-Ayn ARE 225970
|
|
68 Ajman ARE 114395
|
|
100 Paraná ARG 207041
|
|
129 Oranjestad ABW 29034
|
|
167 Jamalpur BGD 103556
|
|
168 Pabna BGD 103277
|
|
189 Parakou BEN 103577
|
|
191 Hamilton BMU 1200
|
|
SELECT * FROM City
|
|
WHERE ((ID < 200) AND (Name LIKE 'Ha%' OR (Country > 'A' AND Country < 'ARG')))
|
|
OR ((ID BETWEEN 100 AND 200) AND
|
|
(Name LIKE 'Pa%' OR (Population > 103000 AND Population < 104000)));
|
|
ID Name Country Population
|
|
1 Kabul AFG 1780000
|
|
2 Qandahar AFG 237500
|
|
3 Herat AFG 186800
|
|
4 Mazar-e-Sharif AFG 127800
|
|
7 Haag NLD 440900
|
|
16 Haarlem NLD 148772
|
|
25 Haarlemmermeer NLD 110722
|
|
33 Willemstad ANT 2345
|
|
34 Tirana ALB 270000
|
|
55 Andorra la Vella AND 21189
|
|
56 Luanda AGO 2022000
|
|
57 Huambo AGO 163100
|
|
58 Lobito AGO 130000
|
|
59 Benguela AGO 128300
|
|
60 Namibe AGO 118200
|
|
61 South Hill AIA 961
|
|
62 The Valley AIA 595
|
|
64 Dubai ARE 669181
|
|
65 Abu Dhabi ARE 398695
|
|
66 Sharja ARE 320095
|
|
67 al-Ayn ARE 225970
|
|
68 Ajman ARE 114395
|
|
100 Paraná ARG 207041
|
|
129 Oranjestad ABW 29034
|
|
167 Jamalpur BGD 103556
|
|
168 Pabna BGD 103277
|
|
189 Parakou BEN 103577
|
|
191 Hamilton BMU 1200
|
|
EXPLAIN
|
|
SELECT * FROM City WHERE Population > 101000 AND Population < 102000;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City range Population Population 4 NULL 39 Using index condition
|
|
EXPLAIN
|
|
SELECT * FROM City WHERE Population > 101000 AND Population < 110000;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City range Population Population 4 NULL 328 Using index condition
|
|
EXPLAIN
|
|
SELECT * FROM City WHERE Country < 'C';
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City range Country Country 3 NULL 435 Using index condition
|
|
EXPLAIN
|
|
SELECT * FROM City WHERE Country < 'AGO';
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City range Country Country 3 NULL 5 Using index condition
|
|
EXPLAIN
|
|
SELECT * FROM City WHERE Name BETWEEN 'P' AND 'S';
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City range Name Name 35 NULL 221 Using index condition
|
|
EXPLAIN
|
|
SELECT * FROM City WHERE Name BETWEEN 'P' AND 'Pb';
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City range Name Name 35 NULL 39 Using index condition
|
|
EXPLAIN
|
|
SELECT * FROM City WHERE ID BETWEEN 3400 AND 3800;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City range PRIMARY PRIMARY 4 NULL 401 Using index condition
|
|
EXPLAIN
|
|
SELECT * FROM City WHERE ID BETWEEN 3790 AND 3800;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City range PRIMARY PRIMARY 4 NULL 11 Using index condition
|
|
EXPLAIN
|
|
SELECT * FROM City WHERE Name LIKE 'P%';
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City range Name Name 35 NULL 135 Using index condition
|
|
EXPLAIN
|
|
SELECT * FROM City
|
|
WHERE ((Population > 101000 AND Population < 102000) AND
|
|
(Country < 'C' OR Name BETWEEN 'P' AND 'S')) OR
|
|
((ID BETWEEN 3400 AND 3800) AND
|
|
(Country < 'AGO' OR Name LIKE 'Pa%'));
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City index_merge PRIMARY,Population,Country,Name Country,Name,Population 3,35,4 NULL 83 Using sort_union(Country,Name,Population); Using where
|
|
EXPLAIN
|
|
SELECT * FROM City
|
|
WHERE ((Population > 101000 AND Population < 110000) AND
|
|
(Country < 'AGO' OR Name BETWEEN 'P' AND 'Pb')) OR
|
|
((ID BETWEEN 3790 AND 3800) AND
|
|
(Country < 'C' OR Name LIKE 'P%'));
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City index_merge PRIMARY,Population,Country,Name Country,Name,PRIMARY 3,35,4 NULL 55 Using sort_union(Country,Name,PRIMARY); Using where
|
|
SELECT * FROM City USE INDEX ()
|
|
WHERE ((Population > 101000 AND Population < 102000) AND
|
|
(Country < 'C' OR Name BETWEEN 'P' AND 'S')) OR
|
|
((ID BETWEEN 3400 AND 3800) AND
|
|
(Country < 'AGO' OR Name LIKE 'Pa%'));
|
|
ID Name Country Population
|
|
169 Naogaon BGD 101266
|
|
205 Francistown BWA 101805
|
|
417 Itaituba BRA 101320
|
|
418 Araras BRA 101046
|
|
751 Potchefstroom ZAF 101817
|
|
2909 Puno PER 101578
|
|
3463 Pavlograd UKR 127000
|
|
SELECT * FROM City
|
|
WHERE ((Population > 101000 AND Population < 102000) AND
|
|
(Country < 'C' OR Name BETWEEN 'P' AND 'S')) OR
|
|
((ID BETWEEN 3400 AND 3800) AND
|
|
(Country < 'AGO' OR Name LIKE 'Pa%'));
|
|
ID Name Country Population
|
|
169 Naogaon BGD 101266
|
|
205 Francistown BWA 101805
|
|
417 Itaituba BRA 101320
|
|
418 Araras BRA 101046
|
|
751 Potchefstroom ZAF 101817
|
|
2909 Puno PER 101578
|
|
3463 Pavlograd UKR 127000
|
|
SELECT * FROM City USE INDEX ()
|
|
WHERE ((Population > 101000 AND Population < 110000) AND
|
|
(Country < 'AGO' OR Name BETWEEN 'P' AND 'Pb')) OR
|
|
((ID BETWEEN 3790 AND 3800) AND
|
|
(Country < 'C' OR Name LIKE 'P%'));
|
|
ID Name Country Population
|
|
168 Pabna BGD 103277
|
|
189 Parakou BEN 103577
|
|
750 Paarl ZAF 105768
|
|
2865 Pak Pattan PAK 107800
|
|
3797 Philadelphia USA 1517550
|
|
3798 Phoenix USA 1321045
|
|
SELECT * FROM City
|
|
WHERE ((Population > 101000 AND Population < 110000) AND
|
|
(Country < 'AGO' OR Name BETWEEN 'P' AND 'Pb')) OR
|
|
((ID BETWEEN 3790 AND 3800) AND
|
|
(Country < 'C' OR Name LIKE 'P%'));
|
|
ID Name Country Population
|
|
168 Pabna BGD 103277
|
|
189 Parakou BEN 103577
|
|
750 Paarl ZAF 105768
|
|
2865 Pak Pattan PAK 107800
|
|
3797 Philadelphia USA 1517550
|
|
3798 Phoenix USA 1321045
|
|
CREATE INDEX CountryPopulation ON City(Country,Population);
|
|
EXPLAIN
|
|
SELECT * FROM City WHERE Name LIKE 'Pas%';
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City range Name Name 35 NULL 4 Using index condition
|
|
EXPLAIN
|
|
SELECT * FROM City WHERE Name LIKE 'P%';
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City range Name Name 35 NULL 135 Using index condition
|
|
EXPLAIN
|
|
SELECT * FROM City WHERE (Population > 101000 AND Population < 103000);
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City range Population Population 4 NULL 81 Using index condition
|
|
EXPLAIN
|
|
SELECT * FROM City WHERE Country='USA';
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City ref Country,CountryPopulation Country 3 const 267 Using index condition
|
|
EXPLAIN
|
|
SELECT * FROM City WHERE Country='FIN';
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City ref Country,CountryPopulation Country 3 const 7 Using index condition
|
|
EXPLAIN
|
|
SELECT * FROM City
|
|
WHERE ((Population > 101000 AND Population < 103000) OR Name LIKE 'Pas%')
|
|
AND Country='USA';
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City index_merge Population,Country,Name,CountryPopulation CountryPopulation,Name 7,35 NULL 14 Using sort_union(CountryPopulation,Name); Using where
|
|
EXPLAIN
|
|
SELECT * FROM City
|
|
WHERE ((Population > 101000 AND Population < 103000) OR Name LIKE 'P%')
|
|
AND Country='EST';
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City ref Population,Country,Name,CountryPopulation Country 3 const 2 Using index condition; Using where
|
|
SELECT * FROM City
|
|
WHERE ((Population > 101000 AND Population < 103000) OR Name LIKE 'Pas%')
|
|
AND Country='USA';
|
|
ID Name Country Population
|
|
3943 Pasadena USA 141674
|
|
3953 Pasadena USA 133936
|
|
4023 Gary USA 102746
|
|
4024 Berkeley USA 102743
|
|
4025 Santa Clara USA 102361
|
|
4026 Green Bay USA 102313
|
|
4027 Cape Coral USA 102286
|
|
4028 Arvada USA 102153
|
|
4029 Pueblo USA 102121
|
|
4030 Sandy USA 101853
|
|
4031 Athens-Clarke County USA 101489
|
|
4032 Cambridge USA 101355
|
|
SELECT * FROM City USE INDEX ()
|
|
WHERE ((Population > 101000 AND Population < 103000) OR Name LIKE 'Pas%')
|
|
AND Country='USA';
|
|
ID Name Country Population
|
|
3943 Pasadena USA 141674
|
|
3953 Pasadena USA 133936
|
|
4023 Gary USA 102746
|
|
4024 Berkeley USA 102743
|
|
4025 Santa Clara USA 102361
|
|
4026 Green Bay USA 102313
|
|
4027 Cape Coral USA 102286
|
|
4028 Arvada USA 102153
|
|
4029 Pueblo USA 102121
|
|
4030 Sandy USA 101853
|
|
4031 Athens-Clarke County USA 101489
|
|
4032 Cambridge USA 101355
|
|
SELECT * FROM City
|
|
WHERE ((Population > 101000 AND Population < 103000) OR Name LIKE 'P%')
|
|
AND Country='FIN';
|
|
ID Name Country Population
|
|
SELECT * FROM City USE INDEX ()
|
|
WHERE ((Population > 101000 AND Population < 103000) OR Name LIKE 'P%')
|
|
AND Country='FIN';
|
|
ID Name Country Population
|
|
CREATE INDEX CountryName ON City(Country,Name);
|
|
EXPLAIN
|
|
SELECT * FROM City WHERE Country='USA';
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City ref Country,CountryPopulation,CountryName Country 3 const 267 Using index condition
|
|
EXPLAIN
|
|
SELECT * FROM City WHERE Country='FIN';
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City ref Country,CountryPopulation,CountryName CountryName 3 const 5 Using index condition
|
|
EXPLAIN
|
|
SELECT * FROM City WHERE Country='BRA';
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City ref Country,CountryPopulation,CountryName CountryName 3 const 221 Using index condition
|
|
EXPLAIN
|
|
SELECT * FROM City WHERE ID BETWEEN 3790 AND 3800;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City range PRIMARY PRIMARY 4 NULL 11 Using index condition
|
|
EXPLAIN
|
|
SELECT * FROM City WHERE ID BETWEEN 4025 AND 4035;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City range PRIMARY PRIMARY 4 NULL 11 Using index condition
|
|
EXPLAIN
|
|
SELECT * FROM City WHERE ID BETWEEN 4028 AND 4032;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City range PRIMARY PRIMARY 4 NULL 5 Using index condition
|
|
EXPLAIN
|
|
SELECT * FROM City WHERE ID BETWEEN 3500 AND 3800;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City range PRIMARY PRIMARY 4 NULL 301 Using index condition
|
|
EXPLAIN
|
|
SELECT * FROM City WHERE ID BETWEEN 4000 AND 4300;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City range PRIMARY PRIMARY 4 NULL 80 Using index condition
|
|
EXPLAIN
|
|
SELECT * FROM City WHERE ID BETWEEN 250 and 260 ;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City range PRIMARY PRIMARY 4 NULL 11 Using index condition
|
|
EXPLAIN
|
|
SELECT * FROM City WHERE (Population > 101000 AND Population < 102000);
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City range Population Population 4 NULL 39 Using index condition
|
|
EXPLAIN
|
|
SELECT * FROM City WHERE (Population > 101000 AND Population < 103000);
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City range Population Population 4 NULL 81 Using index condition
|
|
EXPLAIN
|
|
SELECT * FROM City WHERE Name LIKE 'Pa%';
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City range Name Name 35 NULL 41 Using index condition
|
|
set @tmp_range_vs_index_merge=@@optimizer_switch;
|
|
set optimizer_switch='extended_keys=off';
|
|
EXPLAIN
|
|
SELECT * FROM City
|
|
WHERE ((Population > 101000 AND Population < 102000) OR
|
|
ID BETWEEN 3790 AND 3800) AND Country='USA'
|
|
AND (Name LIKE 'Pa%' OR ID BETWEEN 4025 AND 4035);
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City index_merge PRIMARY,Population,Country,Name,CountryPopulation,CountryName CountryPopulation,PRIMARY 7,4 NULL 14 Using sort_union(CountryPopulation,PRIMARY); Using where
|
|
EXPLAIN
|
|
SELECT * FROM City
|
|
WHERE ((Population > 101000 AND Population < 103000) OR
|
|
ID BETWEEN 3790 AND 3800) AND Country='USA'
|
|
AND (Name LIKE 'Pa%' OR ID BETWEEN 4028 AND 4032);
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City index_merge PRIMARY,Population,Country,Name,CountryPopulation,CountryName CountryName,PRIMARY 38,4 NULL 11 Using sort_union(CountryName,PRIMARY); Using where
|
|
EXPLAIN
|
|
SELECT * FROM City
|
|
WHERE ((Population > 101000 AND Population < 110000) OR
|
|
ID BETWEEN 3500 AND 3800) AND Country='FIN'
|
|
AND (Name BETWEEN 'P' AND 'T' OR ID BETWEEN 4000 AND 4300);
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City ref PRIMARY,Population,Country,Name,CountryPopulation,CountryName CountryName 3 const 5 Using index condition; Using where
|
|
SELECT * FROM City USE INDEX ()
|
|
WHERE ((Population > 101000 AND Population < 102000) OR
|
|
ID BETWEEN 3790 AND 3800) AND Country='USA'
|
|
AND (Name LIKE 'Pa%' OR ID BETWEEN 4025 AND 4035);
|
|
ID Name Country Population
|
|
4030 Sandy USA 101853
|
|
4031 Athens-Clarke County USA 101489
|
|
4032 Cambridge USA 101355
|
|
SELECT * FROM City
|
|
WHERE ((Population > 101000 AND Population < 102000) OR
|
|
ID BETWEEN 3790 AND 3800) AND Country='USA'
|
|
AND (Name LIKE 'Pa%' OR ID BETWEEN 4025 AND 4035);
|
|
ID Name Country Population
|
|
4030 Sandy USA 101853
|
|
4031 Athens-Clarke County USA 101489
|
|
4032 Cambridge USA 101355
|
|
SELECT * FROM City USE INDEX ()
|
|
WHERE ((Population > 101000 AND Population < 102000) OR
|
|
ID BETWEEN 3790 AND 3800) AND Country='USA'
|
|
AND (Name LIKE 'Pa%' OR ID BETWEEN 4028 AND 4032);
|
|
ID Name Country Population
|
|
4030 Sandy USA 101853
|
|
4031 Athens-Clarke County USA 101489
|
|
4032 Cambridge USA 101355
|
|
SELECT * FROM City
|
|
WHERE ((Population > 101000 AND Population < 102000) OR
|
|
ID BETWEEN 3790 AND 3800) AND Country='USA'
|
|
AND (Name LIKE 'Pa%' OR ID BETWEEN 4028 AND 4032);
|
|
ID Name Country Population
|
|
4030 Sandy USA 101853
|
|
4031 Athens-Clarke County USA 101489
|
|
4032 Cambridge USA 101355
|
|
SELECT * FROM City USE INDEX ()
|
|
WHERE ((Population > 101000 AND Population < 102000) OR
|
|
ID BETWEEN 3790 AND 3800) AND Country='FIN'
|
|
AND (Name LIKE 'Pa%' OR ID BETWEEN 4025 AND 4035);
|
|
ID Name Country Population
|
|
SELECT * FROM City
|
|
WHERE ((Population > 101000 AND Population < 102000) OR
|
|
ID BETWEEN 3790 AND 3800) AND Country='FIN'
|
|
AND (Name LIKE 'Pa%' OR ID BETWEEN 4025 AND 4035);
|
|
ID Name Country Population
|
|
EXPLAIN
|
|
SELECT * FROM City
|
|
WHERE ((Population > 101000 and Population < 102000) OR
|
|
ID BETWEEN 3790 AND 3800) AND Country='USA'
|
|
OR (Name LIKE 'Pa%' OR ID BETWEEN 250 AND 260) AND Country='BRA';
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City index_merge PRIMARY,Population,Country,Name,CountryPopulation,CountryName CountryPopulation,PRIMARY,CountryName 7,4,38 NULL 35 Using sort_union(CountryPopulation,PRIMARY,CountryName); Using where
|
|
SELECT * FROM City USE INDEX ()
|
|
WHERE ((Population > 101000 and Population < 102000) OR
|
|
ID BETWEEN 3790 AND 3800) AND Country='USA'
|
|
OR (Name LIKE 'Pa%' OR ID BETWEEN 250 AND 260) AND Country='BRA';
|
|
ID Name Country Population
|
|
250 Mauá BRA 375055
|
|
251 Carapicuíba BRA 357552
|
|
252 Olinda BRA 354732
|
|
253 Campina Grande BRA 352497
|
|
254 São José do Rio Preto BRA 351944
|
|
255 Caxias do Sul BRA 349581
|
|
256 Moji das Cruzes BRA 339194
|
|
257 Diadema BRA 335078
|
|
258 Aparecida de Goiânia BRA 324662
|
|
259 Piracicaba BRA 319104
|
|
260 Cariacica BRA 319033
|
|
285 Paulista BRA 248473
|
|
339 Passo Fundo BRA 166343
|
|
364 Parnaíba BRA 129756
|
|
372 Paranaguá BRA 126076
|
|
379 Palmas BRA 121919
|
|
386 Patos de Minas BRA 119262
|
|
424 Passos BRA 98570
|
|
430 Paulo Afonso BRA 97291
|
|
435 Parnamirim BRA 96210
|
|
448 Patos BRA 90519
|
|
451 Palhoça BRA 89465
|
|
3793 New York USA 8008278
|
|
3794 Los Angeles USA 3694820
|
|
3795 Chicago USA 2896016
|
|
3796 Houston USA 1953631
|
|
3797 Philadelphia USA 1517550
|
|
3798 Phoenix USA 1321045
|
|
3799 San Diego USA 1223400
|
|
3800 Dallas USA 1188580
|
|
4030 Sandy USA 101853
|
|
4031 Athens-Clarke County USA 101489
|
|
4032 Cambridge USA 101355
|
|
SELECT * FROM City
|
|
WHERE ((Population > 101000 and Population < 102000) OR
|
|
ID BETWEEN 3790 AND 3800) AND Country='USA'
|
|
OR (Name LIKE 'Pa%' OR ID BETWEEN 250 AND 260) AND Country='BRA';
|
|
ID Name Country Population
|
|
250 Mauá BRA 375055
|
|
251 Carapicuíba BRA 357552
|
|
252 Olinda BRA 354732
|
|
253 Campina Grande BRA 352497
|
|
254 São José do Rio Preto BRA 351944
|
|
255 Caxias do Sul BRA 349581
|
|
256 Moji das Cruzes BRA 339194
|
|
257 Diadema BRA 335078
|
|
258 Aparecida de Goiânia BRA 324662
|
|
259 Piracicaba BRA 319104
|
|
260 Cariacica BRA 319033
|
|
285 Paulista BRA 248473
|
|
339 Passo Fundo BRA 166343
|
|
364 Parnaíba BRA 129756
|
|
372 Paranaguá BRA 126076
|
|
379 Palmas BRA 121919
|
|
386 Patos de Minas BRA 119262
|
|
424 Passos BRA 98570
|
|
430 Paulo Afonso BRA 97291
|
|
435 Parnamirim BRA 96210
|
|
448 Patos BRA 90519
|
|
451 Palhoça BRA 89465
|
|
3793 New York USA 8008278
|
|
3794 Los Angeles USA 3694820
|
|
3795 Chicago USA 2896016
|
|
3796 Houston USA 1953631
|
|
3797 Philadelphia USA 1517550
|
|
3798 Phoenix USA 1321045
|
|
3799 San Diego USA 1223400
|
|
3800 Dallas USA 1188580
|
|
4030 Sandy USA 101853
|
|
4031 Athens-Clarke County USA 101489
|
|
4032 Cambridge USA 101355
|
|
EXPLAIN
|
|
SELECT * FROM City
|
|
WHERE ((Population > 101000 AND Population < 11000) OR
|
|
ID BETWEEN 3500 AND 3800) AND Country='USA'
|
|
AND (Name LIKE 'P%' OR ID BETWEEN 4000 AND 4300);
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City range|filter PRIMARY,Population,Country,Name,CountryPopulation,CountryName CountryName|PRIMARY 38|4 NULL 23 (7%) Using index condition; Using where; Using rowid filter
|
|
EXPLAIN
|
|
SELECT * FROM City
|
|
WHERE ((Population > 101000 AND Population < 11000) OR
|
|
ID BETWEEN 3500 AND 3800) AND Country='USA'
|
|
AND (Name LIKE 'Pho%' OR ID BETWEEN 4000 AND 4300);
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City range PRIMARY,Population,Country,Name,CountryPopulation,CountryName Name 35 NULL 1 Using where
|
|
SELECT * FROM City USE INDEX ()
|
|
WHERE ((Population > 101000 AND Population < 11000) OR
|
|
ID BETWEEN 3500 AND 3800) AND Country='USA'
|
|
AND (Name LIKE 'P%' OR ID BETWEEN 4000 AND 4300);
|
|
ID Name Country Population
|
|
3797 Philadelphia USA 1517550
|
|
3798 Phoenix USA 1321045
|
|
SELECT * FROM City
|
|
WHERE ((Population > 101000 AND Population < 11000) OR
|
|
ID BETWEEN 3500 AND 3800) AND Country='USA'
|
|
AND (Name LIKE 'P%' OR ID BETWEEN 4000 AND 4300);
|
|
ID Name Country Population
|
|
3797 Philadelphia USA 1517550
|
|
3798 Phoenix USA 1321045
|
|
SELECT * FROM City USE INDEX ()
|
|
WHERE ((Population > 101000 AND Population < 11000) OR
|
|
ID BETWEEN 3500 AND 3800) AND Country='USA'
|
|
AND (Name LIKE 'Pho%' OR ID BETWEEN 4000 AND 4300);
|
|
ID Name Country Population
|
|
3798 Phoenix USA 1321045
|
|
SELECT * FROM City
|
|
WHERE ((Population > 101000 AND Population < 11000) OR
|
|
ID BETWEEN 3500 AND 3800) AND Country='USA'
|
|
AND (Name LIKE 'Pho%' OR ID BETWEEN 4000 AND 4300);
|
|
ID Name Country Population
|
|
3798 Phoenix USA 1321045
|
|
DROP INDEX Population ON City;
|
|
DROP INDEX Name ON City;
|
|
set optimizer_switch=@tmp_range_vs_index_merge;
|
|
EXPLAIN
|
|
SELECT * FROM City
|
|
WHERE Country='USA' AND Population BETWEEN 101000 AND 102000 OR
|
|
Country='USA' AND Name LIKE 'Pa%';
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City index_merge Country,CountryPopulation,CountryName CountryPopulation,CountryName 7,38 NULL 10 Using sort_union(CountryPopulation,CountryName); Using where
|
|
SELECT * FROM City USE INDEX()
|
|
WHERE Country='USA' AND Population BETWEEN 101000 AND 102000 OR
|
|
Country='USA' AND Name LIKE 'Pa%';
|
|
ID Name Country Population
|
|
3932 Paterson USA 149222
|
|
3943 Pasadena USA 141674
|
|
3953 Pasadena USA 133936
|
|
3967 Paradise USA 124682
|
|
3986 Palmdale USA 116670
|
|
4030 Sandy USA 101853
|
|
4031 Athens-Clarke County USA 101489
|
|
4032 Cambridge USA 101355
|
|
SELECT * FROM City
|
|
WHERE Country='USA' AND Population BETWEEN 101000 AND 102000 OR
|
|
Country='USA' AND Name LIKE 'Pa%';
|
|
ID Name Country Population
|
|
3932 Paterson USA 149222
|
|
3943 Pasadena USA 141674
|
|
3953 Pasadena USA 133936
|
|
3967 Paradise USA 124682
|
|
3986 Palmdale USA 116670
|
|
4030 Sandy USA 101853
|
|
4031 Athens-Clarke County USA 101489
|
|
4032 Cambridge USA 101355
|
|
EXPLAIN
|
|
SELECT * FROM City
|
|
WHERE Country='USA' AND
|
|
(Population BETWEEN 101000 AND 102000 OR Name LIKE 'Pa%');
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City index_merge Country,CountryPopulation,CountryName CountryPopulation,CountryName 7,38 NULL 10 Using sort_union(CountryPopulation,CountryName); Using where
|
|
SELECT * FROM City
|
|
WHERE Country='USA' AND
|
|
(Population BETWEEN 101000 AND 102000 OR Name LIKE 'Pa%');
|
|
ID Name Country Population
|
|
3932 Paterson USA 149222
|
|
3943 Pasadena USA 141674
|
|
3953 Pasadena USA 133936
|
|
3967 Paradise USA 124682
|
|
3986 Palmdale USA 116670
|
|
4030 Sandy USA 101853
|
|
4031 Athens-Clarke County USA 101489
|
|
4032 Cambridge USA 101355
|
|
SELECT * FROM City
|
|
WHERE Country='USA' AND
|
|
(Population BETWEEN 101000 AND 102000 OR Name LIKE 'Pa%');
|
|
ID Name Country Population
|
|
3932 Paterson USA 149222
|
|
3943 Pasadena USA 141674
|
|
3953 Pasadena USA 133936
|
|
3967 Paradise USA 124682
|
|
3986 Palmdale USA 116670
|
|
4030 Sandy USA 101853
|
|
4031 Athens-Clarke County USA 101489
|
|
4032 Cambridge USA 101355
|
|
set @save_optimizer_switch=@@optimizer_switch;
|
|
CREATE INDEX CityName on City(Name);
|
|
EXPLAIN SELECT Name, Country, Population FROM City WHERE
|
|
(Name='Manila' AND Country='PHL') OR
|
|
(Name='Addis Abeba' AND Country='ETH') OR
|
|
(Name='Jakarta' AND Country='IDN') OR
|
|
(Name='Bangalore' AND Country='IND') OR
|
|
(Name='Teheran' AND Country='IRN') OR
|
|
(Name='Roma' AND Country='ITA') OR
|
|
(Name='Delhi' AND Country='IND') OR
|
|
(Name='Venezia' AND Country='ITA') OR
|
|
(Name='Tokyo' AND Country='JPN') OR
|
|
(Name='Toronto' AND Country='CAN') OR
|
|
(Name='Peking' AND Country='CHN') OR
|
|
(Name='Lagos' AND Country='NGA') OR
|
|
(Name='Tijuana' AND Country='MEX') OR
|
|
(Name='Rabat' AND Country='MAR') OR
|
|
(Name='Seoul' AND Country='KOR') OR
|
|
(Name='Vancouver' AND Country='CAN') OR
|
|
(Name='Kaunas' AND Country='LTU') OR
|
|
(Name='Paris' AND Country='FRA') OR
|
|
(Name='Dakar' AND Country='SEN') OR
|
|
(Name='Basel' AND Country='CHE') OR
|
|
(Name='Praha' AND Country='CZE') OR
|
|
(Name='Ankara' AND Country='TUR') OR
|
|
(Name='Dresden' AND Country='DEU') OR
|
|
(Name='Lugansk' AND Country='UKR') OR
|
|
(Name='Caracas' AND Country='VEN') OR
|
|
(Name='Samara' AND Country='RUS') OR
|
|
(Name='Seattle' AND Country='USA');
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City index_merge Country,CountryPopulation,CountryName,CityName CountryName,CityName 38,35 NULL 28 Using sort_union(CountryName,CityName); Using where
|
|
SELECT Name, Country, Population FROM City WHERE
|
|
(Name='Manila' AND Country='PHL') OR
|
|
(Name='Addis Abeba' AND Country='ETH') OR
|
|
(Name='Jakarta' AND Country='IDN') OR
|
|
(Name='Bangalore' AND Country='IND') OR
|
|
(Name='Teheran' AND Country='IRN') OR
|
|
(Name='Roma' AND Country='ITA') OR
|
|
(Name='Delhi' AND Country='IND') OR
|
|
(Name='Venezia' AND Country='ITA') OR
|
|
(Name='Tokyo' AND Country='JPN') OR
|
|
(Name='Toronto' AND Country='CAN') OR
|
|
(Name='Peking' AND Country='CHN') OR
|
|
(Name='Lagos' AND Country='NGA') OR
|
|
(Name='Tijuana' AND Country='MEX') OR
|
|
(Name='Rabat' AND Country='MAR') OR
|
|
(Name='Seoul' AND Country='KOR') OR
|
|
(Name='Vancouver' AND Country='CAN') OR
|
|
(Name='Kaunas' AND Country='LTU') OR
|
|
(Name='Paris' AND Country='FRA') OR
|
|
(Name='Dakar' AND Country='SEN') OR
|
|
(Name='Basel' AND Country='CHE') OR
|
|
(Name='Praha' AND Country='CZE') OR
|
|
(Name='Ankara' AND Country='TUR') OR
|
|
(Name='Dresden' AND Country='DEU') OR
|
|
(Name='Lugansk' AND Country='UKR') OR
|
|
(Name='Caracas' AND Country='VEN') OR
|
|
(Name='Samara' AND Country='RUS') OR
|
|
(Name='Seattle' AND Country='USA');
|
|
Name Country Population
|
|
Addis Abeba ETH 2495000
|
|
Ankara TUR 3038159
|
|
Bangalore IND 2660088
|
|
Basel CHE 166700
|
|
Caracas VEN 1975294
|
|
Dakar SEN 785071
|
|
Delhi IND 7206704
|
|
Dresden DEU 476668
|
|
Jakarta IDN 9604900
|
|
Kaunas LTU 412639
|
|
Lagos NGA 1518000
|
|
Lugansk UKR 469000
|
|
Manila PHL 1581082
|
|
Paris FRA 2125246
|
|
Peking CHN 7472000
|
|
Praha CZE 1181126
|
|
Rabat MAR 623457
|
|
Roma ITA 2643581
|
|
Samara RUS 1156100
|
|
Seattle USA 563374
|
|
Seoul KOR 9981619
|
|
Teheran IRN 6758845
|
|
Tijuana MEX 1212232
|
|
Tokyo JPN 7980230
|
|
Toronto CAN 688275
|
|
Vancouver CAN 514008
|
|
Venezia ITA 277305
|
|
set optimizer_switch='index_merge=off';
|
|
EXPLAIN SELECT Name, Country, Population FROM City WHERE
|
|
(Name='Manila' AND Country='PHL') OR
|
|
(Name='Addis Abeba' AND Country='ETH') OR
|
|
(Name='Jakarta' AND Country='IDN') OR
|
|
(Name='Bangalore' AND Country='IND') OR
|
|
(Name='Teheran' AND Country='IRN') OR
|
|
(Name='Roma' AND Country='ITA') OR
|
|
(Name='Delhi' AND Country='IND') OR
|
|
(Name='Venezia' AND Country='ITA') OR
|
|
(Name='Tokyo' AND Country='JPN') OR
|
|
(Name='Toronto' AND Country='CAN') OR
|
|
(Name='Peking' AND Country='CHN') OR
|
|
(Name='Lagos' AND Country='NGA') OR
|
|
(Name='Tijuana' AND Country='MEX') OR
|
|
(Name='Rabat' AND Country='MAR') OR
|
|
(Name='Seoul' AND Country='KOR') OR
|
|
(Name='Vancouver' AND Country='CAN') OR
|
|
(Name='Kaunas' AND Country='LTU') OR
|
|
(Name='Paris' AND Country='FRA') OR
|
|
(Name='Dakar' AND Country='SEN') OR
|
|
(Name='Basel' AND Country='CHE') OR
|
|
(Name='Praha' AND Country='CZE') OR
|
|
(Name='Ankara' AND Country='TUR') OR
|
|
(Name='Dresden' AND Country='DEU') OR
|
|
(Name='Lugansk' AND Country='UKR') OR
|
|
(Name='Caracas' AND Country='VEN') OR
|
|
(Name='Samara' AND Country='RUS') OR
|
|
(Name='Seattle' AND Country='USA');
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City range Country,CountryPopulation,CountryName,CityName CountryName 38 NULL 28 Using index condition
|
|
SELECT Name, Country, Population FROM City WHERE
|
|
(Name='Manila' AND Country='PHL') OR
|
|
(Name='Addis Abeba' AND Country='ETH') OR
|
|
(Name='Jakarta' AND Country='IDN') OR
|
|
(Name='Bangalore' AND Country='IND') OR
|
|
(Name='Teheran' AND Country='IRN') OR
|
|
(Name='Roma' AND Country='ITA') OR
|
|
(Name='Delhi' AND Country='IND') OR
|
|
(Name='Venezia' AND Country='ITA') OR
|
|
(Name='Tokyo' AND Country='JPN') OR
|
|
(Name='Toronto' AND Country='CAN') OR
|
|
(Name='Peking' AND Country='CHN') OR
|
|
(Name='Lagos' AND Country='NGA') OR
|
|
(Name='Tijuana' AND Country='MEX') OR
|
|
(Name='Rabat' AND Country='MAR') OR
|
|
(Name='Seoul' AND Country='KOR') OR
|
|
(Name='Vancouver' AND Country='CAN') OR
|
|
(Name='Kaunas' AND Country='LTU') OR
|
|
(Name='Paris' AND Country='FRA') OR
|
|
(Name='Dakar' AND Country='SEN') OR
|
|
(Name='Basel' AND Country='CHE') OR
|
|
(Name='Praha' AND Country='CZE') OR
|
|
(Name='Ankara' AND Country='TUR') OR
|
|
(Name='Dresden' AND Country='DEU') OR
|
|
(Name='Lugansk' AND Country='UKR') OR
|
|
(Name='Caracas' AND Country='VEN') OR
|
|
(Name='Samara' AND Country='RUS') OR
|
|
(Name='Seattle' AND Country='USA');
|
|
Name Country Population
|
|
Addis Abeba ETH 2495000
|
|
Ankara TUR 3038159
|
|
Bangalore IND 2660088
|
|
Basel CHE 166700
|
|
Caracas VEN 1975294
|
|
Dakar SEN 785071
|
|
Delhi IND 7206704
|
|
Dresden DEU 476668
|
|
Jakarta IDN 9604900
|
|
Kaunas LTU 412639
|
|
Lagos NGA 1518000
|
|
Lugansk UKR 469000
|
|
Manila PHL 1581082
|
|
Paris FRA 2125246
|
|
Peking CHN 7472000
|
|
Praha CZE 1181126
|
|
Rabat MAR 623457
|
|
Roma ITA 2643581
|
|
Samara RUS 1156100
|
|
Seattle USA 563374
|
|
Seoul KOR 9981619
|
|
Teheran IRN 6758845
|
|
Tijuana MEX 1212232
|
|
Tokyo JPN 7980230
|
|
Toronto CAN 688275
|
|
Vancouver CAN 514008
|
|
Venezia ITA 277305
|
|
set optimizer_switch=@save_optimizer_switch;
|
|
#
|
|
# Bug mdev-585: range vs index-merge with ORDER BY ... LIMIT n
|
|
# (LP bug #637962)
|
|
#
|
|
DROP INDEX CountryPopulation ON City;
|
|
DROP INDEX CountryName ON City;
|
|
DROP INDEX CityName on City;
|
|
CREATE INDEX Name ON City(Name);
|
|
CREATE INDEX Population ON City(Population);
|
|
EXPLAIN
|
|
SELECT * FROM City
|
|
WHERE ((Name > 'Ca' AND Name < 'Cf') OR (Country > 'E' AND Country < 'H'))
|
|
AND (Population >= 100000 AND Population < 120000);
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City index_merge Country,Name,Population Name,Country 35,3 NULL # Using sort_union(Name,Country); Using where
|
|
FLUSH STATUS;
|
|
SELECT * FROM City
|
|
WHERE ((Name > 'Ca' AND Name < 'Cf') OR (Country > 'E' AND Country < 'H'))
|
|
AND (Population >= 100000 AND Population < 120000);
|
|
ID Name Country Population
|
|
384 Cabo Frio BRA 119503
|
|
387 Camaragibe BRA 118968
|
|
403 Catanduva BRA 107761
|
|
412 Cachoeirinha BRA 103240
|
|
508 Watford GBR 113080
|
|
509 Ipswich GBR 114000
|
|
510 Slough GBR 112000
|
|
511 Exeter GBR 111000
|
|
512 Cheltenham GBR 106000
|
|
513 Gloucester GBR 107000
|
|
514 Saint Helens GBR 106293
|
|
515 Sutton Coldfield GBR 106001
|
|
516 York GBR 104425
|
|
517 Oldham GBR 103931
|
|
518 Basildon GBR 100924
|
|
519 Worthing GBR 100000
|
|
635 Mallawi EGY 119283
|
|
636 Bilbays EGY 113608
|
|
637 Mit Ghamr EGY 101801
|
|
638 al-Arish EGY 100447
|
|
701 Tarragona ESP 113016
|
|
702 Lleida (Lérida) ESP 112207
|
|
703 Jaén ESP 109247
|
|
704 Ourense (Orense) ESP 109120
|
|
705 Mataró ESP 104095
|
|
706 Algeciras ESP 103106
|
|
707 Marbella ESP 101144
|
|
759 Gonder ETH 112249
|
|
869 Cabuyao PHL 106630
|
|
870 Calapan PHL 105910
|
|
873 Cauayan PHL 103952
|
|
903 Serekunda GMB 102600
|
|
909 Sohumi GEO 111700
|
|
913 Tema GHA 109975
|
|
914 Sekondi-Takoradi GHA 103653
|
|
924 Villa Nueva GTM 101295
|
|
1844 Cape Breton CAN 114733
|
|
1847 Cambridge CAN 109186
|
|
2406 Herakleion GRC 116178
|
|
2407 Kallithea GRC 114233
|
|
2408 Larisa GRC 113090
|
|
2908 Cajamarca PER 108009
|
|
3002 Besançon FRA 117733
|
|
3003 Caen FRA 113987
|
|
3004 Orléans FRA 113126
|
|
3005 Mulhouse FRA 110359
|
|
3006 Rouen FRA 106592
|
|
3007 Boulogne-Billancourt FRA 106367
|
|
3008 Perpignan FRA 105115
|
|
3009 Nancy FRA 103605
|
|
3411 Ceyhan TUR 102412
|
|
3567 Carúpano VEN 119639
|
|
3568 Catia La Mar VEN 117012
|
|
3571 Calabozo VEN 107146
|
|
3786 Cam Ranh VNM 114041
|
|
3792 Tartu EST 101246
|
|
4002 Carrollton USA 109576
|
|
4027 Cape Coral USA 102286
|
|
4032 Cambridge USA 101355
|
|
SHOW STATUS LIKE 'Handler_read_%';
|
|
Variable_name Value
|
|
Handler_read_first 0
|
|
Handler_read_key 2
|
|
Handler_read_last 0
|
|
Handler_read_next 385
|
|
Handler_read_prev 0
|
|
Handler_read_retry 0
|
|
Handler_read_rnd 377
|
|
Handler_read_rnd_deleted 0
|
|
Handler_read_rnd_next 0
|
|
EXPLAIN
|
|
SELECT * FROM City
|
|
WHERE ((Name > 'Ca' AND Name < 'Cf') OR (Country > 'E' AND Country < 'H'))
|
|
AND (Population >= 100000 AND Population < 120000)
|
|
ORDER BY Population LIMIT 5;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City range Country,Name,Population Population 4 NULL # Using where
|
|
FLUSH STATUS;
|
|
SELECT * FROM City
|
|
WHERE ((Name > 'Ca' AND Name < 'Cf') OR (Country > 'E' AND Country < 'H'))
|
|
AND (Population >= 100000 AND Population < 120000)
|
|
ORDER BY Population LIMIT 5;
|
|
ID Name Country Population
|
|
519 Worthing GBR 100000
|
|
638 al-Arish EGY 100447
|
|
518 Basildon GBR 100924
|
|
707 Marbella ESP 101144
|
|
3792 Tartu EST 101246
|
|
SHOW STATUS LIKE 'Handler_read_%';
|
|
Variable_name Value
|
|
Handler_read_first 0
|
|
Handler_read_key 1
|
|
Handler_read_last 0
|
|
Handler_read_next 59
|
|
Handler_read_prev 0
|
|
Handler_read_retry 0
|
|
Handler_read_rnd 0
|
|
Handler_read_rnd_deleted 0
|
|
Handler_read_rnd_next 0
|
|
set @tmp_mdev585=@@optimizer_use_condition_selectivity;
|
|
set optimizer_use_condition_selectivity=1;
|
|
EXPLAIN
|
|
SELECT * FROM City
|
|
WHERE ((Name > 'Ca' AND Name < 'Cf') OR (Country > 'E' AND Country < 'H'))
|
|
AND (Population >= 100000 AND Population < 120000)
|
|
ORDER BY Population LIMIT 5;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City range Country,Name,Population Population 4 NULL # Using where
|
|
FLUSH STATUS;
|
|
SELECT * FROM City
|
|
WHERE ((Name > 'Ca' AND Name < 'Cf') OR (Country > 'E' AND Country < 'H'))
|
|
AND (Population >= 100000 AND Population < 120000)
|
|
ORDER BY Population LIMIT 5;
|
|
ID Name Country Population
|
|
519 Worthing GBR 100000
|
|
638 al-Arish EGY 100447
|
|
518 Basildon GBR 100924
|
|
707 Marbella ESP 101144
|
|
3792 Tartu EST 101246
|
|
SHOW STATUS LIKE 'Handler_read_%';
|
|
Variable_name Value
|
|
Handler_read_first 0
|
|
Handler_read_key 1
|
|
Handler_read_last 0
|
|
Handler_read_next 59
|
|
Handler_read_prev 0
|
|
Handler_read_retry 0
|
|
Handler_read_rnd 0
|
|
Handler_read_rnd_deleted 0
|
|
Handler_read_rnd_next 0
|
|
set optimizer_use_condition_selectivity=@tmp_mdev585;
|
|
set optimizer_switch='index_merge=off';
|
|
EXPLAIN
|
|
SELECT * FROM City
|
|
WHERE ((Name > 'Ca' AND Name < 'Cf') OR (Country > 'E' AND Country < 'H'))
|
|
AND (Population >= 100000 AND Population < 120000)
|
|
ORDER BY Population LIMIT 5;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City range Country,Name,Population Population 4 NULL # Using index condition; Using where
|
|
FLUSH STATUS;
|
|
SELECT * FROM City
|
|
WHERE ((Name > 'Ca' AND Name < 'Cf') OR (Country > 'E' AND Country < 'H'))
|
|
AND (Population >= 100000 AND Population < 120000)
|
|
ORDER BY Population LIMIT 5;
|
|
ID Name Country Population
|
|
519 Worthing GBR 100000
|
|
638 al-Arish EGY 100447
|
|
518 Basildon GBR 100924
|
|
707 Marbella ESP 101144
|
|
3792 Tartu EST 101246
|
|
SHOW STATUS LIKE 'Handler_read_%';
|
|
Variable_name Value
|
|
Handler_read_first 0
|
|
Handler_read_key 1
|
|
Handler_read_last 0
|
|
Handler_read_next 59
|
|
Handler_read_prev 0
|
|
Handler_read_retry 0
|
|
Handler_read_rnd 0
|
|
Handler_read_rnd_deleted 0
|
|
Handler_read_rnd_next 0
|
|
set optimizer_switch=@save_optimizer_switch;
|
|
DROP DATABASE world;
|
|
use test;
|
|
CREATE TABLE t1 (
|
|
id int(10) unsigned NOT NULL auto_increment,
|
|
account_id int(10) unsigned NOT NULL,
|
|
first_name varchar(50) default NULL,
|
|
middle_name varchar(50) default NULL,
|
|
last_name varchar(100) default NULL,
|
|
home_address_1 varchar(150) default NULL,
|
|
home_city varchar(75) default NULL,
|
|
home_state char(2) default NULL,
|
|
home_postal_code varchar(50) default NULL,
|
|
home_county varchar(75) default NULL,
|
|
home_country char(3) default NULL,
|
|
work_address_1 varchar(150) default NULL,
|
|
work_city varchar(75) default NULL,
|
|
work_state char(2) default NULL,
|
|
work_postal_code varchar(50) default NULL,
|
|
work_county varchar(75) default NULL,
|
|
work_country char(3) default NULL,
|
|
login varchar(50) NOT NULL,
|
|
PRIMARY KEY (id),
|
|
KEY login (login,account_id),
|
|
KEY account_id (account_id),
|
|
KEY user_home_country_indx (home_country),
|
|
KEY user_work_country_indx (work_country),
|
|
KEY user_home_state_indx (home_state),
|
|
KEY user_work_state_indx (work_state),
|
|
KEY user_home_city_indx (home_city),
|
|
KEY user_work_city_indx (work_city),
|
|
KEY user_first_name_indx (first_name),
|
|
KEY user_last_name_indx (last_name)
|
|
);
|
|
insert into t1(account_id, login, home_state, work_state) values
|
|
(1, 'pw', 'ia', 'ia'), (1, 'pw', 'ia', 'ia'), (1, 'pw', 'ia', 'ia'),
|
|
(1, 'pw', 'ia', 'ia'), (1, 'pw', 'ia', 'ia'), (1, 'pw', 'ia', 'ia');
|
|
insert into t1(account_id, login, home_state, work_state)
|
|
select 1, 'pw', 'ak', 'ak' from t1;
|
|
insert into t1(account_id, login, home_state, work_state)
|
|
select 1, 'pw', 'ak', 'ak' from t1;
|
|
insert into t1(account_id, login, home_state, work_state)
|
|
select 1, 'pw', 'ak', 'ak' from t1;
|
|
insert into t1(account_id, login, home_state, work_state)
|
|
select 1, 'pw', 'ak', 'ak' from t1;
|
|
insert into t1(account_id, login, home_state, work_state)
|
|
select 1, 'pw', 'ak', 'ak' from t1;
|
|
insert into t1(account_id, login, home_state, work_state)
|
|
select 1, 'pw', 'ak', 'ak' from t1;
|
|
insert into t1(account_id, login, home_state, work_state)
|
|
select 1, 'pw', 'ak', 'ak' from t1;
|
|
insert into t1(account_id, login, home_state, work_state)
|
|
select 1, 'pw', 'ak', 'ak' from t1;
|
|
insert into t1(account_id, login, home_state, work_state)
|
|
select 1, 'pw', 'ak', 'ak' from t1;
|
|
analyze table t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 analyze status Engine-independent statistics collected
|
|
test.t1 analyze status OK
|
|
select count(*) from t1 where account_id = 1;
|
|
count(*)
|
|
3072
|
|
select * from t1
|
|
where (home_state = 'ia' or work_state='ia') and account_id = 1;
|
|
id account_id first_name middle_name last_name home_address_1 home_city home_state home_postal_code home_county home_country work_address_1 work_city work_state work_postal_code work_county work_country login
|
|
1 1 NULL NULL NULL NULL NULL ia NULL NULL NULL NULL NULL ia NULL NULL NULL pw
|
|
2 1 NULL NULL NULL NULL NULL ia NULL NULL NULL NULL NULL ia NULL NULL NULL pw
|
|
3 1 NULL NULL NULL NULL NULL ia NULL NULL NULL NULL NULL ia NULL NULL NULL pw
|
|
4 1 NULL NULL NULL NULL NULL ia NULL NULL NULL NULL NULL ia NULL NULL NULL pw
|
|
5 1 NULL NULL NULL NULL NULL ia NULL NULL NULL NULL NULL ia NULL NULL NULL pw
|
|
6 1 NULL NULL NULL NULL NULL ia NULL NULL NULL NULL NULL ia NULL NULL NULL pw
|
|
explain
|
|
select * from t1
|
|
where (home_state = 'ia' or work_state='ia') and account_id = 1;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 index_merge account_id,user_home_state_indx,user_work_state_indx user_home_state_indx,user_work_state_indx 3,3 NULL 6 Using union(user_home_state_indx,user_work_state_indx); Using where
|
|
drop table t1;
|
|
CREATE TABLE t1 (
|
|
c1 int(11) NOT NULL auto_increment,
|
|
c2 decimal(10,0) default NULL,
|
|
c3 decimal(10,0) default NULL,
|
|
c4 decimal(10,0) default NULL,
|
|
c5 decimal(10,0) default NULL,
|
|
cp decimal(1,0) default NULL,
|
|
ce decimal(10,0) default NULL,
|
|
cdata char(20),
|
|
PRIMARY KEY (c1),
|
|
KEY k1 (c2,c3,cp,ce),
|
|
KEY k2 (c4,c5,cp,ce)
|
|
);
|
|
insert into t1 (c2, c3, c4, c5, cp) values(1,1,1,1,1);
|
|
insert into t1 (c2, c3, c4, c5, cp) values(2,1,1,1,4);
|
|
insert into t1 (c2, c3, c4, c5, cp) values(2,1,2,1,1);
|
|
insert into t1 (c2, c3, c4, c5, cp) values(2,1,3,1,4);
|
|
insert into t1 (c2, c3, c4, c5, cp) values(3,1,4,1,4);
|
|
insert into t1 (c2, c3, c4, c5, cp)
|
|
select c2, c3, c4, c5, cp from t1 where cp = 4;
|
|
insert into t1 (c2, c3, c4, c5, cp)
|
|
select c2, c3, c4, c5, cp from t1 where cp = 4;
|
|
insert into t1 (c2, c3, c4, c5, cp)
|
|
select c2, c3, c4, c5, cp from t1 where cp = 4;
|
|
insert into t1 (c2, c3, c4, c5, cp)
|
|
select c2, c3, c4, c5, cp from t1 where cp = 4;
|
|
insert into t1 (c2, c3, c4, c5, cp)
|
|
select c2, c3, c4, c5, cp from t1 where cp = 4;
|
|
insert into t1 (c2, c3, c4, c5, cp)
|
|
select c2, c3, c4, c5, cp from t1 where cp = 4;
|
|
insert into t1 (c2, c3, c4, c5, cp)
|
|
select c2, c3, c4, c5, cp from t1 where cp = 4;
|
|
insert into t1 (c2, c3, c4, c5, cp)
|
|
select c2, c3, c4, c5, cp from t1 where cp = 4;
|
|
insert into t1 (c2, c3, c4, c5, cp)
|
|
select c2, c3, c4, c5, cp from t1 where cp = 4;
|
|
insert into t1 (c2, c3, c4, c5, cp)
|
|
select c2, c3, c4, c5, cp from t1 where cp = 4;
|
|
insert into t1 (c2, c3, c4, c5, cp)
|
|
select c2, c3, c4, c5, cp from t1 where cp = 4;
|
|
analyze table t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 analyze status Engine-independent statistics collected
|
|
test.t1 analyze status OK
|
|
explain
|
|
select * from t1 where (c2=1 and c3=1) or (c4=2 and c5=1);
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 index_merge k1,k2 k1,k2 12,12 NULL 2 Using sort_union(k1,k2); Using where
|
|
explain
|
|
select * from t1
|
|
where (c2=1 and c3=1 and cp=1) or (c4=2 and c5=1 and cp=1);
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 index_merge k1,k2 k1,k2 14,14 NULL 2 Using sort_union(k1,k2); Using where
|
|
explain
|
|
select * from t1
|
|
where ((c2=1 and c3=1) or (c4=2 and c5=1)) and cp=1;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 index_merge k1,k2 k1,k2 14,14 NULL 2 Using sort_union(k1,k2); Using where
|
|
select * from t1
|
|
where (c2=1 and c3=1 and cp=1) or (c4=2 and c5=1 and cp=1);
|
|
c1 c2 c3 c4 c5 cp ce cdata
|
|
1 1 1 1 1 1 NULL NULL
|
|
3 2 1 2 1 1 NULL NULL
|
|
select * from t1
|
|
where ((c2=1 and c3=1) or (c4=2 and c5=1)) and cp=1;
|
|
c1 c2 c3 c4 c5 cp ce cdata
|
|
1 1 1 1 1 1 NULL NULL
|
|
3 2 1 2 1 1 NULL NULL
|
|
drop table t1;
|
|
create table t1 (
|
|
c1 int auto_increment primary key,
|
|
c2 char(20),
|
|
c3 char (20),
|
|
c4 int
|
|
);
|
|
alter table t1 add key k1 (c2);
|
|
alter table t1 add key k2 (c3);
|
|
alter table t1 add key k3 (c4);
|
|
insert into t1 values(null, 'a', 'b', 0);
|
|
insert into t1 values(null, 'c', 'b', 0);
|
|
insert into t1 values(null, 'a', 'd', 0);
|
|
insert into t1 values(null, 'ccc', 'qqq', 0);
|
|
insert into t1 (c2,c3) select c2,c3 from t1 where c2 != 'a';
|
|
insert into t1 (c2,c3) select c2,c3 from t1 where c2 != 'a';
|
|
insert into t1 (c2,c3) select c2,c3 from t1 where c2 != 'a';
|
|
insert into t1 (c2,c3) select c2,c3 from t1 where c2 != 'a';
|
|
insert into t1 (c2,c3) select c2,c3 from t1 where c2 != 'a';
|
|
insert into t1 (c2,c3) select c2,c3 from t1 where c2 != 'a';
|
|
insert into t1 (c2,c3) select c2,c3 from t1 where c2 != 'a';
|
|
insert into t1 (c2,c3,c4) select c2,c3,1 from t1 where c2 != 'a';
|
|
insert into t1 (c2,c3,c4) select c2,c3,2 from t1 where c2 != 'a';
|
|
insert into t1 (c2,c3,c4) select c2,c3,3 from t1 where c2 != 'a';
|
|
insert into t1 (c2,c3,c4) select c2,c3,4 from t1 where c2 != 'a';
|
|
analyze table t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 analyze status Engine-independent statistics collected
|
|
test.t1 analyze status OK
|
|
select count(*) from t1 where (c2='e' OR c3='q');
|
|
count(*)
|
|
0
|
|
select count(*) from t1 where c4 != 0;
|
|
count(*)
|
|
3840
|
|
explain
|
|
select distinct c1 from t1 where (c2='e' OR c3='q');
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 index_merge k1,k2 k1,k2 21,21 NULL 2 Using union(k1,k2); Using where
|
|
explain
|
|
select distinct c1 from t1 where (c4!= 0) AND (c2='e' OR c3='q');
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 index_merge k1,k2,k3 k1,k2 21,21 NULL 2 Using union(k1,k2); Using where
|
|
drop table t1;
|
|
create table t1 (
|
|
id int unsigned auto_increment primary key,
|
|
c1 char(12),
|
|
c2 char(15),
|
|
c3 char(1)
|
|
);
|
|
insert into t1 (c3) values ('1'), ('2');
|
|
insert into t1 (c3) select c3 from t1;
|
|
insert into t1 (c3) select c3 from t1;
|
|
insert into t1 (c3) select c3 from t1;
|
|
insert into t1 (c3) select c3 from t1;
|
|
insert into t1 (c3) select c3 from t1;
|
|
insert into t1 (c3) select c3 from t1;
|
|
insert into t1 (c3) select c3 from t1;
|
|
insert into t1 (c3) select c3 from t1;
|
|
insert into t1 (c3) select c3 from t1;
|
|
insert into t1 (c3) select c3 from t1;
|
|
insert into t1 (c3) select c3 from t1;
|
|
insert into t1 (c3) select c3 from t1;
|
|
update t1 set c1=lpad(id+1000, 12, ' '), c2=lpad(id+10000, 15, ' ');
|
|
alter table t1 add unique index (c1), add unique index (c2), add index (c3);
|
|
analyze table t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 analyze status Engine-independent statistics collected
|
|
test.t1 analyze status Table is already up to date
|
|
explain
|
|
select * from t1 where (c1=' 100000' or c2=' 2000000');
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 index_merge c1,c2 c1,c2 13,16 NULL 2 Using union(c1,c2); Using where
|
|
explain
|
|
select * from t1 where (c1=' 100000' or c2=' 2000000') and c3='2';
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 index_merge c1,c2,c3 c1,c2 13,16 NULL 2 Using union(c1,c2); Using where
|
|
select * from t1 where (c1=' 100000' or c2=' 2000000');
|
|
id c1 c2 c3
|
|
select * from t1 where (c1=' 100000' or c2=' 2000000') and c3='2';
|
|
id c1 c2 c3
|
|
drop table t1;
|
|
CREATE TABLE t1 (
|
|
a smallint DEFAULT NULL,
|
|
pk int NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
b varchar(10) DEFAULT NULL,
|
|
c varchar(64) DEFAULT NULL,
|
|
INDEX idx1 (a),
|
|
INDEX idx2 (b),
|
|
INDEX idx3 (c)
|
|
);
|
|
SELECT COUNT(*) FROM t1 IGNORE INDEX (idx2,idx3)
|
|
WHERE c = 'i' OR b IN ( 'Arkansas' , 'd' , 'pdib' , 'can' ) OR
|
|
(pk BETWEEN 120 AND 79 + 255 OR a IN ( 4 , 179 , 1 ) ) AND a > 8 ;
|
|
COUNT(*)
|
|
5
|
|
SELECT COUNT(*) FROM t1
|
|
WHERE c = 'i' OR b IN ( 'Arkansas' , 'd' , 'pdib' , 'can' ) OR
|
|
(pk BETWEEN 120 AND 79 + 255 OR a IN ( 4 , 179 , 1 ) ) AND a > 8 ;
|
|
COUNT(*)
|
|
5
|
|
EXPLAIN
|
|
SELECT COUNT(*) FROM t1
|
|
WHERE c = 'i' OR b IN ( 'Arkansas' , 'd' , 'pdib' , 'can' ) OR
|
|
(pk BETWEEN 120 AND 79 + 255 OR a IN ( 4 , 179 , 1 ) ) AND a > 8 ;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 index_merge PRIMARY,idx1,idx2,idx3 idx3,idx2,PRIMARY,idx1 67,13,4,3 NULL 9 Using sort_union(idx3,idx2,PRIMARY,idx1); Using where
|
|
DROP TABLE t1;
|
|
CREATE TABLE t1 (
|
|
f1 int, f2 int, f3 int, f4 int, f5 int,
|
|
PRIMARY KEY (f4), KEY (f1), KEY (f2), KEY (f3)
|
|
) ;
|
|
INSERT INTO t1 VALUES (0,0,NULL,9,5), (0,0,1,9425,NULL);
|
|
SELECT f5 FROM t1
|
|
WHERE f2 != 1 OR f1 IS NULL OR f4 = 4 OR
|
|
f2 AND (f4 BETWEEN 6 AND 255 OR f3 IS NULL);
|
|
f5
|
|
5
|
|
NULL
|
|
DROP TABLE t1;
|
|
CREATE TABLE t1 (
|
|
f1 int, f2 int, f3 int, f4 int,
|
|
PRIMARY KEY (f1), KEY (f3), KEY (f4)
|
|
);
|
|
INSERT INTO t1 VALUES (1,0,0,0), (2,0,0,0), (3,0,0,0);
|
|
INSERT INTO t1 VALUES (9,0,2,6), (9930,0,0,NULL);
|
|
insert into t1 select seq,seq,seq,seq from seq_100_to_400;
|
|
analyze table t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 analyze status Engine-independent statistics collected
|
|
test.t1 analyze status OK
|
|
SET SESSION optimizer_switch='index_merge_intersection=off';
|
|
SET SESSION optimizer_switch='index_merge_sort_union=off';
|
|
SET SESSION optimizer_switch='index_merge_union=off';
|
|
EXPLAIN
|
|
SELECT * FROM t1 FORCE KEY (PRIMARY,f3,f4)
|
|
WHERE ( f3 = 1 OR f1 = 7 ) AND f1 < 10
|
|
OR f3 BETWEEN 2 AND 2 AND ( f3 = 1 OR f4 < 7 );
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 ALL PRIMARY,f3,f4 NULL NULL NULL 306 Using where
|
|
SELECT * FROM t1 FORCE KEY (PRIMARY,f3,f4)
|
|
WHERE ( f3 = 1 OR f1 = 7 ) AND f1 < 10
|
|
OR f3 BETWEEN 2 AND 2 AND ( f3 = 1 OR f4 < 7 );
|
|
f1 f2 f3 f4
|
|
9 0 2 6
|
|
SET SESSION optimizer_switch='index_merge_union=on';
|
|
EXPLAIN
|
|
SELECT * FROM t1 FORCE KEY (PRIMARY,f3,f4)
|
|
WHERE ( f3 = 1 OR f1 = 7 ) AND f1 < 10
|
|
OR f3 BETWEEN 2 AND 2 AND ( f3 = 1 OR f4 < 7 );
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 index_merge PRIMARY,f3,f4 f3,PRIMARY,f3 5,4,5 NULL 3 Using union(f3,PRIMARY,f3); Using where
|
|
SELECT * FROM t1 FORCE KEY (PRIMARY,f3,f4)
|
|
WHERE ( f3 = 1 OR f1 = 7 ) AND f1 < 10
|
|
OR f3 BETWEEN 2 AND 2 AND ( f3 = 1 OR f4 < 7 );
|
|
f1 f2 f3 f4
|
|
9 0 2 6
|
|
INSERT INTO t1 VALUES
|
|
(93,0,3,6), (9933,0,3,3), (94,0,4,6), (9934,0,4,4),
|
|
(95,0,5,6), (9935,0,5,5), (96,0,6,6), (9936,0,6,6),
|
|
(97,0,7,6), (9937,0,7,7), (98,0,8,6), (9938,0,8,8),
|
|
(99,0,9,6), (9939,0,9,9);
|
|
analyze table t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 analyze status Engine-independent statistics collected
|
|
test.t1 analyze status OK
|
|
SET SESSION optimizer_switch='index_merge_union=off';
|
|
EXPLAIN
|
|
SELECT * FROM t1 FORCE KEY (PRIMARY,f3,f4)
|
|
WHERE ( f3 = 1 OR f1 = 7 ) AND f1 < 10
|
|
OR f3 BETWEEN 2 AND 2 AND ( f3 = 1 OR f4 < 7 );
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 ALL PRIMARY,f3,f4 NULL NULL NULL 320 Using where
|
|
SELECT * FROM t1 FORCE KEY (PRIMARY,f3,f4)
|
|
WHERE ( f3 = 1 OR f1 = 7 ) AND f1 < 10
|
|
OR f3 BETWEEN 2 AND 2 AND ( f3 = 1 OR f4 < 7 );
|
|
f1 f2 f3 f4
|
|
9 0 2 6
|
|
SET SESSION optimizer_switch='index_merge_union=on';
|
|
EXPLAIN
|
|
SELECT * FROM t1 FORCE KEY (PRIMARY,f3,f4)
|
|
WHERE ( f3 = 1 OR f1 = 7 ) AND f1 < 10
|
|
OR f3 BETWEEN 2 AND 2 AND ( f3 = 1 OR f4 < 7 );
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 index_merge PRIMARY,f3,f4 f3,PRIMARY,f3 5,4,5 NULL 3 Using union(f3,PRIMARY,f3); Using where
|
|
SELECT * FROM t1 FORCE KEY (PRIMARY,f3,f4)
|
|
WHERE ( f3 = 1 OR f1 = 7 ) AND f1 < 10
|
|
OR f3 BETWEEN 2 AND 2 AND ( f3 = 1 OR f4 < 7 );
|
|
f1 f2 f3 f4
|
|
9 0 2 6
|
|
SET SESSION optimizer_switch=DEFAULT;
|
|
DROP TABLE t1;
|
|
CREATE TABLE t1 (f1 int) ;
|
|
INSERT INTO t1 VALUES (0), (0);
|
|
CREATE TABLE t2 (f1 int, f2 int, f3 int, f4 int, INDEX idx (f3,f2)) ;
|
|
INSERT INTO t2 VALUES (5,6,0,0), (0,4,0,0);
|
|
CREATE TABLE t3 (f1 int, f2 int, INDEX idx1 (f2,f1) , INDEX idx2 (f1)) ;
|
|
INSERT INTO t3 VALUES (6,0),( 4,0);
|
|
SELECT * FROM t1,t2,t3
|
|
WHERE (t2.f3 = 1 OR t3.f1=t2.f1) AND t3.f1 <> t2.f2 AND t3.f2 = t2.f4;
|
|
f1 f1 f2 f3 f4 f1 f2
|
|
DROP TABLE t1,t2,t3;
|
|
CREATE TABLE t1 (
|
|
a int, b int, c int, d int,
|
|
PRIMARY KEY(b), INDEX idx1(d), INDEX idx2(d,b,c)
|
|
);
|
|
INSERT INTO t1 VALUES
|
|
(0,58,7,7),(0,63,2,0),(0,64,186,8),(0,65,1,-2), (0,71,190,-3),
|
|
(0,72,321,-7),(0,73,0,3),(0,74,5,25),(0,75,5,3);
|
|
ANALYZE TABLE t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 analyze status Engine-independent statistics collected
|
|
test.t1 analyze status OK
|
|
SET SESSION optimizer_switch='index_merge_sort_union=off';
|
|
EXPLAIN
|
|
SELECT * FROM t1
|
|
WHERE t1.b>7 AND t1.d>1 AND t1.d<>8 OR t1.d>=7 AND t1.d<8 OR t1.d>7;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 ALL PRIMARY,idx1,idx2 NULL NULL NULL 9 Using where
|
|
SELECT * FROM t1
|
|
WHERE t1.b>7 AND t1.d>1 AND t1.d<>8 OR t1.d>=7 AND t1.d<8 OR t1.d>7;
|
|
a b c d
|
|
0 58 7 7
|
|
0 64 186 8
|
|
0 73 0 3
|
|
0 74 5 25
|
|
0 75 5 3
|
|
SET SESSION optimizer_switch='index_merge_sort_union=on';
|
|
EXPLAIN
|
|
SELECT * FROM t1
|
|
WHERE t1.b>7 AND t1.d>1 AND t1.d<>8 OR t1.d>=7 AND t1.d<8 OR t1.d>7;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 ALL PRIMARY,idx1,idx2 NULL NULL NULL 9 Using where
|
|
SELECT * FROM t1
|
|
WHERE t1.b>7 AND t1.d>1 AND t1.d<>8 OR t1.d>=7 AND t1.d<8 OR t1.d>7;
|
|
a b c d
|
|
0 58 7 7
|
|
0 64 186 8
|
|
0 73 0 3
|
|
0 74 5 25
|
|
0 75 5 3
|
|
SET SESSION optimizer_switch=DEFAULT;
|
|
DROP TABLE t1;
|
|
CREATE TABLE t1 (a int NOT NULL PRIMARY KEY, b int, c int, INDEX idx(c,b));
|
|
INSERT INTO t1 VALUES (19,1,NULL), (20,5,7);
|
|
EXPLAIN
|
|
SELECT * FROM t1
|
|
WHERE t1.a>300 AND t1.c!=0 AND t1.b>=350 AND t1.b<=400 AND
|
|
(t1.c=0 OR t1.a=500);
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range PRIMARY,idx PRIMARY 4 NULL 1 Using index condition; Using where
|
|
SELECT * FROM t1
|
|
WHERE t1.a>300 AND t1.c!=0 AND t1.b>=350 AND t1.b<=400 AND
|
|
(t1.c=0 OR t1.a=500);
|
|
a b c
|
|
DROP TABLE t1;
|
|
CREATE TABLE t1 (a int PRIMARY KEY, b int, INDEX idx(b));
|
|
INSERT INTO t1 VALUES (167,9999), (168,10000);
|
|
EXPLAIN
|
|
SELECT * FROM t1
|
|
WHERE a BETWEEN 4 AND 5 AND b IN (255,4) OR a IN (2,14,25) OR (a<2 or a>2);
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 ALL PRIMARY,idx NULL NULL NULL 2 Using where
|
|
SELECT * FROM t1
|
|
WHERE a BETWEEN 4 AND 5 AND b IN (255,4) OR a IN (2,14,25) OR (a<2 or a>2);
|
|
a b
|
|
167 9999
|
|
168 10000
|
|
DROP TABLE t1;
|
|
#
|
|
# MDEV-8603: Wrong result OR/AND condition over index fields
|
|
#
|
|
CREATE TABLE t1 (
|
|
id INT NOT NULL,
|
|
state VARCHAR(64),
|
|
capital VARCHAR(64),
|
|
UNIQUE KEY (id),
|
|
KEY state (state,id),
|
|
KEY capital (capital, id)
|
|
);
|
|
INSERT INTO t1 VALUES
|
|
(1,'Arizona','Phoenix'),
|
|
(2,'Hawaii','Honolulu'),
|
|
(3,'Georgia','Atlanta'),
|
|
(4,'Florida','Tallahassee'),
|
|
(5,'Alaska','Juneau'),
|
|
(6,'Michigan','Lansing'),
|
|
(7,'Pennsylvania','Harrisburg'),
|
|
(8,'Virginia','Richmond')
|
|
;
|
|
ANALYZE TABLE t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 analyze status Engine-independent statistics collected
|
|
test.t1 analyze status OK
|
|
EXPLAIN
|
|
SELECT * FROM t1 FORCE KEY (state,capital)
|
|
WHERE ( state = 'Alabama' OR state >= 'Colorado' ) AND (id<9 or id>9)
|
|
OR ( capital >= 'Topeka' OR state = 'Kansas' ) AND state != 'Texas';
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range state,capital state 71 NULL 8 Using index condition; Using where
|
|
SELECT * FROM t1 FORCE KEY (state,capital)
|
|
WHERE ( state = 'Alabama' OR state >= 'Colorado' ) AND (id<9 or id>9)
|
|
OR ( capital >= 'Topeka' OR state = 'Kansas' ) AND state != 'Texas';
|
|
id state capital
|
|
4 Florida Tallahassee
|
|
3 Georgia Atlanta
|
|
2 Hawaii Honolulu
|
|
6 Michigan Lansing
|
|
7 Pennsylvania Harrisburg
|
|
8 Virginia Richmond
|
|
DROP TABLE t1;
|
|
#
|
|
# mdev-11574: do not build index merge of two indexes when
|
|
# one index is an infix of the other index
|
|
#
|
|
set names utf8;
|
|
CREATE DATABASE world;
|
|
use world;
|
|
CREATE TABLE Country (
|
|
Code char(3) NOT NULL default '',
|
|
Name char(52) NOT NULL default '',
|
|
SurfaceArea float(10,2) NOT NULL default '0.00',
|
|
Population int(11) NOT NULL default '0',
|
|
Capital int(11) default NULL,
|
|
PRIMARY KEY (Code),
|
|
UNIQUE INDEX (Name)
|
|
);
|
|
CREATE TABLE City (
|
|
ID int(11) NOT NULL auto_increment,
|
|
Name char(35) NOT NULL default '',
|
|
Country char(3) NOT NULL default '',
|
|
Population int(11) NOT NULL default '0',
|
|
PRIMARY KEY (ID),
|
|
INDEX (Population),
|
|
INDEX (Country)
|
|
);
|
|
CREATE TABLE CountryLanguage (
|
|
Country char(3) NOT NULL default '',
|
|
Language char(30) NOT NULL default '',
|
|
Percentage float(3,1) NOT NULL default '0.0',
|
|
PRIMARY KEY (Country, Language),
|
|
INDEX (Percentage)
|
|
);
|
|
DROP INDEX Country ON City;
|
|
CREATE INDEX CountryName ON City(Country,Name);
|
|
CREATE INDEX Name ON City(Name);
|
|
select * from City
|
|
where
|
|
Country='FIN' AND Name IN ('Lahti','Imatra') OR
|
|
Country='RUS' AND Name IN ('St Petersburg', 'Moscow') OR
|
|
Country='SWE' AND Name IN ('Stockholm', 'Uppsala') OR
|
|
Country='DEU' AND Name IN ('Berlin', 'Bonn') OR
|
|
Country='BEL' AND Name IN ('Antwerpen', 'Gent') OR
|
|
Country='PRT' AND Name IN ('Braga', 'Porto') OR
|
|
Country='FRA' AND Name IN ('Paris', 'Marcel') OR
|
|
Country='POL' AND Name IN ('Warszawa', 'Wroclaw') OR
|
|
Country='NOR' AND Name IN ('Oslo', 'Bergen') OR
|
|
Country='ITA' AND Name IN ('Napoli', 'Venezia');
|
|
ID Name Country Population
|
|
175 Antwerpen BEL 446525
|
|
176 Gent BEL 224180
|
|
3068 Berlin DEU 3386667
|
|
3087 Bonn DEU 301048
|
|
3242 Lahti FIN 96921
|
|
2974 Paris FRA 2125246
|
|
1466 Napoli ITA 1002619
|
|
1474 Venezia ITA 277305
|
|
2808 Bergen NOR 230948
|
|
2807 Oslo NOR 508726
|
|
2928 Warszawa POL 1615369
|
|
2931 Wroclaw POL 636765
|
|
2918 Braga PRT 90535
|
|
2915 Porto PRT 273060
|
|
3580 Moscow RUS 8389200
|
|
3581 St Petersburg RUS 4694000
|
|
3048 Stockholm SWE 750348
|
|
3051 Uppsala SWE 189569
|
|
explain select * from City
|
|
where
|
|
Country='FIN' AND Name IN ('Lahti','Imatra') OR
|
|
Country='RUS' AND Name IN ('St Petersburg', 'Moscow') OR
|
|
Country='SWE' AND Name IN ('Stockholm', 'Uppsala') OR
|
|
Country='DEU' AND Name IN ('Berlin', 'Bonn') OR
|
|
Country='BEL' AND Name IN ('Antwerpen', 'Gent') OR
|
|
Country='PRT' AND Name IN ('Braga', 'Porto') OR
|
|
Country='FRA' AND Name IN ('Paris', 'Marcel') OR
|
|
Country='POL' AND Name IN ('Warszawa', 'Wroclaw') OR
|
|
Country='NOR' AND Name IN ('Oslo', 'Bergen') OR
|
|
Country='ITA' AND Name IN ('Napoli', 'Venezia');
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE City range CountryName,Name CountryName 38 NULL 20 Using index condition
|
|
DROP DATABASE world;
|
|
set session optimizer_switch='index_merge_sort_intersection=default';
|