Sie sind auf Seite 1von 14

1.

No index, non-clustered index , clustered index


No index

SELECT * FROM ticket WHERE itin_id = 20141152561;

24130.2

Non-clustered index

SELECT * FROM ticket WHERE itin_id = 20141152561;

14.5

2. Unique key vs duplicate attribute


No index

SELECT * FROM ticket WHERE origin_airport_seq_id = 1025702;

4240.3

Index

SELECT * FROM ticket WHERE origin_airport_seq_id = 1025702;

3422.4

3. Numeric vs. character vs. varchar

Numeric no index

SELECT * FROM ticket WHERE origin_state_fips=12;

66396.1

Numeric index

SELECT * FROM ticket WHERE origin_state_fips=12;

66238.4

Character no index

SELECT * FROM ticket WHERE origin_state = 'FL';

67508

Character index

SELECT * FROM ticket WHERE origin_state = 'FL';

66137.9

Varchar no index

SELECT * FROM ticket WHERE origin_state_name='Florida'

70546.1

Varchar index

SELECT * FROM ticket WHERE origin_state_name='Florida'

65791.9

3.1 Numeric
Numeric no index

SELECT * FROM ticket WHERE origin_state_fips=12;

66396.1

Numeric index

SELECT * FROM ticket WHERE origin_state_fips=12;

66238.4

Character no index

SELECT * FROM ticket WHERE origin_state = 'FL';

67508

Character index

SELECT * FROM ticket WHERE origin_state = 'FL';

66137.9

Varchar no index

SELECT * FROM ticket WHERE origin_state_name='Florida'

70546.1

Varchar index

SELECT * FROM ticket WHERE origin_state_name='Florida'

65791.9

3.2 Character
Numeric no index

SELECT * FROM ticket WHERE origin_state_fips=12;

66396.1

Numeric index

SELECT * FROM ticket WHERE origin_state_fips=12;

66238.4

Character no index

SELECT * FROM ticket WHERE origin_state = 'FL';

67508

Character index

SELECT * FROM ticket WHERE origin_state = 'FL';

66137.9

Varchar no index

SELECT * FROM ticket WHERE origin_state_name='Florida'

70546.1

Varchar index

SELECT * FROM ticket WHERE origin_state_name='Florida'

65791.9

3.3 Variable character


Numeric no index

SELECT * FROM ticket WHERE origin_state_fips=12;

66396.1

Numeric index

SELECT * FROM ticket WHERE origin_state_fips=12;

66238.4

Character no index

SELECT * FROM ticket WHERE origin_state = 'FL';

67508

Character index

SELECT * FROM ticket WHERE origin_state = 'FL';

66137.9

Varchar no index

SELECT * FROM ticket WHERE origin_state_name='Florida'

70546.1

Varchar index

SELECT * FROM ticket WHERE origin_state_name='Florida'

65791.9

4. Un-nested vs. nested query

Nested no index

SELECT * FROM ticket WHERE origin_airport_id in (select origin_airport_id from


market where origin_airport_id > 15900)

4177.6

Nested 1 index

Use index idx_market_airport_id

2568.2

Nested 1 index

Use index idx_ticket_airport_id

3883.2

Nested 2 index
Un-nested no index
Un-nested index

2066.6
Use temporary table

7733.6
3123

4.1 Nested

4.1 Nested

4.2 Un-Nested

10

5. Aggregation and join


5.1 Aggregation
No index
index

SELECT max(origin_airport_id), min(origin_airport_id), avg(origin_airport_id) FROM


coupon

55850
55235

11

5.2 Join
5.2.1 Join 2 table
EXPLAIN SELECT c.itin_id, c.origin_airport_id,t.origin_city_market_id
FROM ticket AS t
INNER JOIN coupon c
ON c.origin_city_market_id = t.origin_city_market_id
WHERE t.itin_id = 2014111;

12

5.2 Join
5.2.2 Join 3 table
EXPLAIN SELECT c.itin_id, c.origin_airport_id,t.origin_city_market_id
FROM ticket AS t
INNER JOIN (coupon c INNER JOIN market m
ON m.origin_city_market_id = c.origin_city_market_id)
ON c.origin_city_market_id = t.origin_city_market_id
WHERE t.itin_id = 2014111;

13

5.2 Join
5.2.2 Join 3 table
EXPLAIN SELECT c.itin_id, c.origin_airport_id,t.origin_city_market_id
FROM ticket AS t
INNER JOIN (coupon c INNER JOIN market m
ON m.mkt_id = c.mkt_id)
ON c.origin_city_market_id = t.origin_city_market_id
WHERE t.itin_id = 2014111;

14

Das könnte Ihnen auch gefallen