Senior
84
Θέλω να προσθέσω έναν δείκτη σε έναν πίνακα με ένα εκατομμύριο εγγραφές — ποιες είναι οι συνέπειες και πώς να το κάνω σωστά;
Εταιρείες όπου ρωτήθηκαν
ТБанк
Απάντηση από AI
sobes.tech AI
Η προσθήκη δείκτη σε έναν πίνακα με ένα εκατομμύριο εγγραφές μπορεί να προκαλέσει σημαντικό φόρτο στη βάση δεδομένων: η λειτουργία μπορεί να διαρκέσει, να μπλοκάρει τον πίνακα ή να επιβραδύνει άλλες ερωτήσεις. Για να ελαχιστοποιήσετε τις συνέπειες:
- Χρησιμοποιήστε τη δημιουργία δείκτη με την επιλογή ONLINE (αν το υποστηρίζει το σύστημα διαχείρισης βάσεων δεδομένων), ώστε να μην μπλοκάρει τον πίνακα.
- Εκτελέστε τη λειτουργία σε περιόδους χαμηλού φόρτου.
- Σκεφτείτε να δημιουργήσετε τον δείκτη σε ένα αντίγραφο και μετά να μεταβείτε σε αυτό.
- Ελέγξτε αν ο δείκτης είναι πραγματικά απαραίτητος, ώστε να μην σπαταλάτε πόρους.
Παράδειγμα για PostgreSQL:
CREATE INDEX CONCURRENTLY idx_column ON table(column);
Η επιλογή CONCURRENTLY επιτρέπει τη δημιουργία δείκτη χωρίς να μπλοκάρει τις εγγραφές, αλλά παίρνει περισσότερο χρόνο και απαιτεί περισσότερους πόρους.