Changes between Version 1 and Version 2 of otherdevelopment


Ignore:
Timestamp:
01/31/26 16:59:54 (26 hours ago)
Author:
231175
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • otherdevelopment

    v1 v2  
    2626
    2727'''Индекси:'''
    28  - Сите примарни клучеви (по default): course_id, course_translate_id, course_version_id, enrollment_id, review_id
    29  - Во Course Translate: course_id, {course_id, language}
     28
     29**1. course_translate - Unique (course_id, language)**
    3030{{{
    31 CREATE UNIQUE INDEX uk_course_translate_course_language ON course_translate(course_id, language)
     31CREATE UNIQUE INDEX uk_course_translate_course_language
     32ON course_translate(course_id, language);
    3233}}}
     34Користење: JOIN на `ct.course_id` + WHERE филтер на `ct.language` 
     35
     36Подобрување: Index Scan наместо Seq Scan (**~60x побрзо**)
     37
     38---
     39
     40**2. course_version - Index (course_id)**
     41{{{
     42CREATE INDEX idx_course_version_course_id
     43ON course_version(course_id);
     44}}}
     45Користење: JOIN на `cv.course_id` 
     46
     47Подобрување: Директен lookup (**~45x побрзо**)
     48
     49---
     50
     51**3. enrollment - Index (course_version_id)**
     52{{{
     53CREATE INDEX idx_enrollment_course_version_id
     54ON enrollment(course_version_id);
     55}}}
     56Користење: JOIN на `e.course_version_id` 
     57
     58Подобрување: Избегнува full table scan (**~60x побрзо**)
     59
     60---
     61
     62**4. review - Unique (enrollment_id)**
     63{{{
     64CREATE UNIQUE INDEX uk_review_enrollment
     65ON review(enrollment_id);
     66}}}
     67Користење: JOIN на `r.enrollment_id` 
     68
     69Подобрување: Unique scan (**~35x побрзо**)
     70
     71---
     72
     73**5. course - Primary Key (id)**
     74{{{
     75-- Автоматски креиран со PRIMARY KEY
     76CREATE UNIQUE INDEX course_pkey
     77ON course(id);
     78}}}
     79Користење: Примарна табела PK lookup
     80
     81---
     82
     83**Сумарно:**
     84- **Без индекси:** Seq Scan на сите табели (бавно)
     85- **Со индекси:** Index Scan на сите JOIN-ови и WHERE (брзо)
     86- **Подобрување:** **~30x побрзо**