Shanraq.org Shanraq.org
Индекс, EXPLAIN және қорытынды есеп
IT

SQL: отбасы бюджетін болжамсыз есептеу 4-сабақ (барлығы 4)

Индекс, EXPLAIN және қорытынды есеп

Отбасы есебін жинап, сұрау жоспарын өлшеп, негізделген индекс құрып, сақтық көшірмені қалпына келтіру арқылы тексереміз.

Бұл не үшін қажет

Дұрыс сұрау көп жолда баяулауы, жылдам сұрау қате нәтиже беруі мүмкін. Тексерілмеген көшірме қажет сәтте ашылмауы ықтимал.

Бейне. Индекс — кітаптың әліпбилік көрсеткіші: іздеуді жеделдету үшін орын және жаңарту жұмысы жұмсалады. Сақтық көшірме — шынайы есікте сыналған қосалқы кілт.

Алдымен тұтас көрініс

EXPLAIN QUERY PLAN
SELECT category_id, SUM(amount_tiyn)
FROM transactions
WHERE happened_on >= '2026-09-01' AND happened_on < '2026-10-01'
GROUP BY category_id;

CREATE INDEX transactions_month_category
    ON transactions(happened_on, category_id);

Талдау

Индексті өлшенген сұрау жолына сәйкестендіріңіз; әр бағанға индекс жасамаңыз және сегіз жолмен жылдамдық бағаламаңыз. EXPLAIN QUERY PLAN — нұсқаға тәуелді диагностика. Шағын кестеде SCAN дұрыс жоспар болуы мүмкін. VIEW нәтиже көшірмесін емес, сұрауды сақтайды. Ашық SQLite базасын .backup не backup API арқылы көшіріп, көшірмені бөлек ашыңыз, integrity_check орындап, бақылау сомаларын салыстырыңыз. Нақты қаржы дерегін Git-ке қоспаңыз.

Сабақ картасы

Индекс, EXPLAIN және қорытынды есеп

Өз сөзіңізбен айтыңыз

  1. Индекстің құны қандай?
  2. SCAN неліктен әрдайым жаман емес?
  3. Сақтық көшірме қашан тексерілген саналады?

Тапсырма

Көшірме жасап, оны бөлек ашыңыз; integrity_check пен айлық есепті орындап, үш қорытындыны салыстырыңыз.

Жобадағы орны

Дайын жобада фактілер қорғалған, есеп түсіндіріледі, индекс өлшенген, көшірме қалпына келеді.

Жауаптар

Жауаптарды көрсету
sqlite3 budget.db ".read course/sql-budget/report.sql"
CREATE VIEW expense_by_category AS
SELECT category_id, SUM(amount_tiyn) AS amount_tiyn
FROM transactions
JOIN categories ON categories.id=category_id
WHERE categories.kind='expense'
GROUP BY category_id;
sqlite3 budget.db ".backup budget-backup.db"
sqlite3 budget-backup.db "PRAGMA integrity_check;"
sqlite3 budget-backup.db ".read course/sql-budget/report.sql"

Дереккөздер

Мәтінде қате не теру қатесі кездессе, бізге айтыңыз

Тапсырманы тексеру

Алдымен VS Code-та шешіп, іске қосыңыз — редактор қатені сол жерде көрсетеді. Дайын шешімді осында қойыңыз. Тексеретін — модель: ол қатені атап көрсетеді, бірақ дайын жауапты бермейді.

Тексеру үшін кіру керек. Кіру

Пікірлер (0)

Әзірге пікір жоқ. Бірінші болыңыз.