Sobes.tech
Senior
84

Θέλω να προσθέσω έναν δείκτη σε έναν πίνακα με ένα εκατομμύριο εγγραφές — ποιες είναι οι συνέπειες και πώς να το κάνω σωστά;

Εταιρείες όπου ρωτήθηκαν
ТБанк

Απάντηση από AI

sobes.tech AI

Η προσθήκη δείκτη σε έναν πίνακα με ένα εκατομμύριο εγγραφές μπορεί να προκαλέσει σημαντικό φόρτο στη βάση δεδομένων: η λειτουργία μπορεί να διαρκέσει, να μπλοκάρει τον πίνακα ή να επιβραδύνει άλλες ερωτήσεις. Για να ελαχιστοποιήσετε τις συνέπειες:

  • Χρησιμοποιήστε τη δημιουργία δείκτη με την επιλογή ONLINE (αν το υποστηρίζει το σύστημα διαχείρισης βάσεων δεδομένων), ώστε να μην μπλοκάρει τον πίνακα.
  • Εκτελέστε τη λειτουργία σε περιόδους χαμηλού φόρτου.
  • Σκεφτείτε να δημιουργήσετε τον δείκτη σε ένα αντίγραφο και μετά να μεταβείτε σε αυτό.
  • Ελέγξτε αν ο δείκτης είναι πραγματικά απαραίτητος, ώστε να μην σπαταλάτε πόρους.

Παράδειγμα για PostgreSQL:

CREATE INDEX CONCURRENTLY idx_column ON table(column);

Η επιλογή CONCURRENTLY επιτρέπει τη δημιουργία δείκτη χωρίς να μπλοκάρει τις εγγραφές, αλλά παίρνει περισσότερο χρόνο και απαιτεί περισσότερους πόρους.