Senior
83
Կարծում եմ, ուզում եմ ավելացնել ինդեքս մի տաբլոյում, որտեղ կա միլիոն գրանցում — ինչ հետևանքներ կարող են լինել և ինչպես ճիշտ անել?
Ընկերությունները, որտեղ հարցրել են
ТБанк
Պատասխան AI-ից
sobes.tech AI
Միլիոն գրանցում ունեցող աղյուսակին ինդեքս ավելացնելը կարող է մեծ բեռ լինել տվյալների բազայի վրա. Օպերացիան կարող է տևել ժամանակ, փակել աղյուսակը կամ դանդաղեցնել այլ հարցումները: Թեթևացնելու համար՝
- Օգտագործեք ONLINE ընտրանքով ինդեքսի ստեղծում (եթե տվյալների բազայի կառավարման համակարգը դա աջակցում է), որպեսզի չփակվի աղյուսակը:
- Կատարեք օպերացիան ցածր բեռի ժամանակ:
- Հաշվի առեք ինդեքսը ստեղծել ռեպլիկայում և հետո անցնել դրա վրա:
- Ստուգեք, արդյոք ինդեքսը իսկապես անհրաժեշտ է, որպեսզի չվատնեք ռեսուրսները:
Օրինակ PostgreSQL-ի համար:
CREATE INDEX CONCURRENTLY idx_column ON table(column);
CONCURRENTLY տարբերակը թույլ է տալիս ստեղծել ինդեքս առանց գրառումների գործողությունների փակման, բայց ավելի երկար ժամանակ է պահանջում և ավելի ռեսուրսներ: