| 1 | -- 1. Check bookings by user
|
|---|
| 2 | EXPLAIN ANALYZE
|
|---|
| 3 | SELECT *
|
|---|
| 4 | FROM Booking
|
|---|
| 5 | WHERE UserID = 1;
|
|---|
| 6 |
|
|---|
| 7 | -- Create index and recheck
|
|---|
| 8 | CREATE INDEX IF NOT EXISTS idx_booking_user ON Booking(UserID);
|
|---|
| 9 |
|
|---|
| 10 | EXPLAIN ANALYZE
|
|---|
| 11 | SELECT *
|
|---|
| 12 | FROM Booking
|
|---|
| 13 | WHERE UserID = 1;
|
|---|
| 14 |
|
|---|
| 15 |
|
|---|
| 16 | -- 2. Check flights by departure time
|
|---|
| 17 | EXPLAIN ANALYZE
|
|---|
| 18 | SELECT *
|
|---|
| 19 | FROM Flight
|
|---|
| 20 | WHERE DepartureTime BETWEEN '2025-05-01' AND '2025-06-01';
|
|---|
| 21 |
|
|---|
| 22 | -- Create index and recheck
|
|---|
| 23 | CREATE INDEX IF NOT EXISTS idx_flight_departuretime ON Flight(DepartureTime);
|
|---|
| 24 |
|
|---|
| 25 | EXPLAIN ANALYZE
|
|---|
| 26 | SELECT *
|
|---|
| 27 | FROM Flight
|
|---|
| 28 | WHERE DepartureTime BETWEEN '2025-05-01' AND '2025-06-01';
|
|---|
| 29 |
|
|---|
| 30 |
|
|---|
| 31 | -- 3. Check payments by booking
|
|---|
| 32 | EXPLAIN ANALYZE
|
|---|
| 33 | SELECT *
|
|---|
| 34 | FROM Payment
|
|---|
| 35 | WHERE BookingID = 5;
|
|---|
| 36 |
|
|---|
| 37 | -- Create index and recheck
|
|---|
| 38 | CREATE INDEX IF NOT EXISTS idx_payment_booking ON Payment(BookingID);
|
|---|
| 39 |
|
|---|
| 40 | EXPLAIN ANALYZE
|
|---|
| 41 | SELECT *
|
|---|
| 42 | FROM Payment
|
|---|
| 43 | WHERE BookingID = 5;
|
|---|
| 44 |
|
|---|
| 45 |
|
|---|
| 46 | -- 4. Check reviews by user
|
|---|
| 47 | EXPLAIN ANALYZE
|
|---|
| 48 | SELECT *
|
|---|
| 49 | FROM Review
|
|---|
| 50 | WHERE UserID = 2;
|
|---|
| 51 |
|
|---|
| 52 | -- Create index and recheck
|
|---|
| 53 | CREATE INDEX IF NOT EXISTS idx_review_user ON Review(UserID);
|
|---|
| 54 |
|
|---|
| 55 | EXPLAIN ANALYZE
|
|---|
| 56 | SELECT *
|
|---|
| 57 | FROM Review
|
|---|
| 58 | WHERE UserID = 2;
|
|---|
| 59 |
|
|---|
| 60 |
|
|---|
| 61 | -- 5. Check reviews by target (type + id)
|
|---|
| 62 | EXPLAIN ANALYZE
|
|---|
| 63 | SELECT *
|
|---|
| 64 | FROM Review
|
|---|
| 65 | WHERE TargetType = 'Destination' AND TargetID = 3;
|
|---|
| 66 |
|
|---|
| 67 | -- Create index and recheck
|
|---|
| 68 | CREATE INDEX IF NOT EXISTS idx_review_target_type_id ON Review(TargetType, TargetID);
|
|---|
| 69 |
|
|---|
| 70 | EXPLAIN ANALYZE
|
|---|
| 71 | SELECT *
|
|---|
| 72 | FROM Review
|
|---|
| 73 | WHERE TargetType = 'Destination' AND TargetID = 3;
|
|---|