Changes between Version 40 and Version 41 of QueryOptimization


Ignore:
Timestamp:
05/09/26 21:22:29 (2 weeks ago)
Author:
231027
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • QueryOptimization

    v40 v41  
    541541}}}
    542542
     543==== Без индекс:
     544
     545 * '''SELECT'''
     546
     547{{{
     548
     549EXPLAIN ANALYZE
     550    SELECT * FROM "Event_Financial_Summary" WHERE event_id = 1;
     551
     552}}}
     553
     554 * '''INSERT'''
     555
     556{{{
     557
     558EXPLAIN ANALYZE
     559    INSERT INTO "Ticket_Purchase" (purchase_id, ticket_id, user_id, qr_code, purchase_time, purchase_amount)
     560    SELECT COALESCE(MAX(purchase_id), 0) + 1, 1, 1, 'QR-TEST-CODE-003', CURRENT_TIMESTAMP, 1500.00
     561    FROM "Ticket_Purchase";
     562
     563}}}
     564
     565 * '''UPDATE'''
     566
     567{{{
     568
     569EXPLAIN ANALYZE
     570    UPDATE "Ticket_Purchase"
     571    SET purchase_amount = 1800.00
     572    WHERE qr_code = 'QR-TEST-CODE-003';
     573
     574}}}
     575
     576Овој поглед има критично време на извршување од над 5 минути поради обработка на милиони трансакции. Индексите на ticket_id го намалуваат времето за 99%, овозможувајќи моментален преглед на приходите и рефундациите за секој настан.
     577
    543578==== Оптимизација:
    544579
     
    553588-- index for linking tickets to scheduled events
    554589CREATE INDEX idx_ticket_event_happening_id ON "Ticket"(event_happening_id);
     590
     591}}}
     592
     593==== Со индекс:
     594
     595 * '''SELECT'''
     596
     597{{{
     598
     599EXPLAIN ANALYZE
     600    SELECT * FROM "Event_Financial_Summary" WHERE event_id = 1;
     601
     602}}}
     603
     604 * '''INSERT'''
     605
     606{{{
     607
     608EXPLAIN ANALYZE
     609    INSERT INTO "Ticket_Purchase" (purchase_id, ticket_id, user_id, qr_code, purchase_time, purchase_amount)
     610    SELECT COALESCE(MAX(purchase_id), 0) + 1, 1, 2, 'QR-TEST-CODE-004', CURRENT_TIMESTAMP, 1400.00
     611    FROM "Ticket_Purchase";
     612
     613}}}
     614
     615 * '''UPDATE'''
     616
     617{{{
     618
     619EXPLAIN ANALYZE
     620    UPDATE "Ticket_Purchase"
     621    SET purchase_amount = 1700.00
     622    WHERE qr_code = 'QR-TEST-CODE-004';
    555623
    556624}}}