Sobes.tech
Senior
83

Կարծում եմ, ուզում եմ ավելացնել ինդեքս մի տաբլոյում, որտեղ կա միլիոն գրանցում — ինչ հետևանքներ կարող են լինել և ինչպես ճիշտ անել?

Ընկերությունները, որտեղ հարցրել են
ТБанк

Պատասխան AI-ից

sobes.tech AI

Միլիոն գրանցում ունեցող աղյուսակին ինդեքս ավելացնելը կարող է մեծ բեռ լինել տվյալների բազայի վրա. Օպերացիան կարող է տևել ժամանակ, փակել աղյուսակը կամ դանդաղեցնել այլ հարցումները: Թեթևացնելու համար՝

  • Օգտագործեք ONLINE ընտրանքով ինդեքսի ստեղծում (եթե տվյալների բազայի կառավարման համակարգը դա աջակցում է), որպեսզի չփակվի աղյուսակը:
  • Կատարեք օպերացիան ցածր բեռի ժամանակ:
  • Հաշվի առեք ինդեքսը ստեղծել ռեպլիկայում և հետո անցնել դրա վրա:
  • Ստուգեք, արդյոք ինդեքսը իսկապես անհրաժեշտ է, որպեսզի չվատնեք ռեսուրսները:

Օրինակ PostgreSQL-ի համար:

CREATE INDEX CONCURRENTLY idx_column ON table(column);

CONCURRENTLY տարբերակը թույլ է տալիս ստեղծել ինդեքս առանց գրառումների գործողությունների փակման, բայց ավելի երկար ժամանակ է պահանջում և ավելի ռեսուրսներ: