Sobes.tech
Junior — Middle

Маалыматтар базасында бир нече баганалар боюнча бириккен индекс түзүү мүмкүнбү?

sobes.tech AI

AIден жооп

Ооба, көбүнчө маалыматтарды башкаруу системдеринде бир нече багытта бириккен индекс (composite index) түзүү мүмкүн. Бул индекс ушул багыттар боюнча фильтрлөө же сорттоо жүргүзүлгөн суроолорду тездетет.

Go тилинде, маалымат базасы менен иштөөдө, адатта, индекс түзүү үчүн SQL суроо колдонулат. Мисалы, PostgreSQL үчүн:

CREATE INDEX idx_name ON table_name (column1, column2);

Эгер сиз Goда ORM же китепкана колдонуп жатсаңыз, мисалы GORM, анда бириккен индекс түзүү мындай көрүнүшү мүмкүн:

import (
    "gorm.io/gorm"
)

type User struct {
    ID        uint
    FirstName string `gorm:"index:idx_name,priority:1"`
    LastName  string `gorm:"index:idx_name,priority:2"`
}

// Миграция учурунда GORM FirstName жана LastName боюнча бириккен индекс түзөт

Мындайча айтканда, бириккен индекс WHERE же ORDER BY шарттарында бир нече багытты колдонгон суроолорду оптималдаштырууга жардам берет.