Changes between Version 42 and Version 43 of QueryOptimization


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

--

Legend:

Unmodified
Added
Removed
Modified
  • QueryOptimization

    v42 v43  
    755755}}}
    756756
     757==== Без индекс:
     758
     759 * '''SELECT'''
     760
     761{{{
     762
     763EXPLAIN ANALYZE
     764    SELECT * FROM "Available_Tickets"
     765    WHERE event_id = 1;
     766
     767}}}
     768
     769 * '''INSERT'''
     770
     771{{{
     772
     773EXPLAIN ANALYZE
     774    INSERT INTO "Ticket" (ticket_id, ticket_type, base_price, is_available, event_happening_id, seat_id)
     775    VALUES ((SELECT MAX(ticket_id) + 1 FROM "Ticket"), 'Standard', 500.00, TRUE, 1, 999999);
     776
     777}}}
     778
     779 * '''UPDATE'''
     780
     781{{{
     782
     783EXPLAIN ANALYZE
     784    UPDATE "Ticket"
     785    SET base_price = 600.00
     786    WHERE ticket_id = (SELECT MAX(ticket_id) FROM "Ticket");
     787
     788}}}
     789
     790За овој поглед се трошат 948.13 ms бидејќи базата мора да пребарува низ 30 милиони записи. Овој процес вклучува скапи операции со трошок од 27455.75, каде се читаат милиони непотребни записи од дискот. Заради ова, потребен е индекс кој ќе ги издвои само достапните билети и ќе го елиминира ваквото чекање.
     791
    757792==== Оптимизација:
    758793
     
    769804
    770805}}}
     806
     807==== Со индекс:
     808
     809 * '''SELECT'''
     810
     811{{{
     812
     813EXPLAIN ANALYZE
     814    SELECT * FROM "Available_Tickets"
     815    WHERE event_id = 1;
     816
     817}}}
     818
     819 * '''INSERT'''
     820
     821{{{
     822
     823EXPLAIN ANALYZE
     824    INSERT INTO "Ticket" (ticket_id, ticket_type, base_price, is_available, event_happening_id, seat_id)
     825    VALUES ((SELECT MAX(ticket_id) + 1 FROM "Ticket"), 'Standard', 500.00, TRUE, 1, 888888);
     826
     827}}}
     828
     829 * '''UPDATE'''
     830
     831{{{
     832
     833EXPLAIN ANALYZE
     834    UPDATE "Ticket"
     835    SET base_price = 700.00
     836    WHERE ticket_id = (SELECT MAX(ticket_id) FROM "Ticket");
     837
     838}}}