Τύπος ευρετηρίου βάσης δεδομένων MySQL/δημιουργία/χρήση συνδυασμού ALTER χρήση δηλώσεων στη MySQL

MySQLτύπος ευρετηρίου/δημιουργία/χρήση συνδυασμού αλλαγήςMySQLχρήση της δήλωσης εντολής

Ευρετήρια MySQL

Η δημιουργία του ευρετηρίου MySQL είναι πολύ σημαντική για την αποτελεσματική λειτουργία της MySQL και το ευρετήριο μπορεί να βελτιώσει σημαντικά την ταχύτητα ανάκτησης της MySQL.

Για παράδειγμα, εάν η MySQL με λογική σχεδίαση και χρήση ευρετηρίων είναι Lamborghini, τότε η MySQL χωρίς ευρετήρια και ευρετήρια είναι ένα ανθρώπινο τρίκυκλο.

Ο δείκτης χωρίζεται σε ευρετήριο μιας στήλης και σε σύνθετο ευρετήριο.Ευρετήριο μίας στήλης, δηλαδή ένα ευρετήριο περιέχει μόνο μία στήλη, ένας πίνακας μπορεί να έχει πολλαπλούς ευρετήρια μίας στήλης, αλλά αυτό δεν είναι σύνθετο ευρετήριο.Σύνθετο ευρετήριο, δηλαδή ένα ευρετήριο περιέχει πολλές στήλες.

Όταν δημιουργείτε ένα ευρετήριο, πρέπει να βεβαιωθείτε ότι το ευρετήριο είναι μια συνθήκη που ισχύει για το ερώτημα SQL (συνήθως ως συνθήκη της ρήτρας WHERE).

Στην πραγματικότητα, το ευρετήριο είναι επίσης ένας πίνακας, ο πίνακας αποθηκεύει το πρωτεύον κλειδί και τα πεδία ευρετηρίου και οδηγεί στις εγγραφές του πίνακα οντοτήτων.

Τα παραπάνω μιλούν για τα οφέλη από τη χρήση ευρετηρίων, αλλά η υπερβολική χρήση ευρετηρίων θα οδηγήσει σε κατάχρηση.Επομένως, το ευρετήριο θα έχει επίσης τα μειονεκτήματά του: αν και το ευρετήριο βελτιώνει πολύ την ταχύτητα ερωτήματος, θα μειώσει την ταχύτητα ενημέρωσης του πίνακα, όπως INSERT, UPDATE και DELETE του πίνακα.Επειδή κατά την ενημέρωση του πίνακα, η MySQL όχι μόνο αποθηκεύει τα δεδομένα, αλλά αποθηκεύει και το αρχείο ευρετηρίου.

Δημιουργία ευρετηρίου ενός αρχείου ευρετηρίου που καταναλώνει χώρο στο δίσκο.


κανονικός δείκτης

δημιουργία ευρετηρίου

Αυτός είναι ο πιο βασικός δείκτης, δεν έχει περιορισμούς.Μπορεί να δημιουργηθεί με τους εξής τρόπους:

CREATE INDEX indexName ON mytable(username(length)); 

Για τους τύπους CHAR και VARCHAR, το μήκος μπορεί να είναι μικρότερο από το πραγματικό μήκος του πεδίου· για τους τύπους BLOB και TEXT, το μήκος πρέπει να καθοριστεί.

Τροποποίηση δομής πίνακα (προσθήκη ευρετηρίου)

ALTER table tableName ADD INDEX indexName(columnName)

Καθορίστε απευθείας κατά τη δημιουργία του πίνακα

CREATE TABLE mytable(  
 
ID INT NOT NULL,   
 
username VARCHAR(16) NOT NULL,  
 
INDEX [indexName] (username(length))  
 
);  

Σύνταξη για απόθεση ενός ευρετηρίου

DROP INDEX [indexName] ON mytable; 

μοναδικό ευρετήριο

Είναι παρόμοιο με το προηγούμενο συνηθισμένο ευρετήριο, η διαφορά είναι: η τιμή της στήλης ευρετηρίου πρέπει να είναι μοναδική, αλλά επιτρέπονται μηδενικές τιμές.Στην περίπτωση ενός σύνθετου ευρετηρίου, ο συνδυασμός τιμών στηλών πρέπει να είναι μοναδικός.Μπορεί να δημιουργηθεί με τους εξής τρόπους:

δημιουργία ευρετηρίου

CREATE UNIQUE INDEX indexName ON mytable(username(length)) 

Τροποποίηση της δομής του πίνακα

ALTER table mytable ADD UNIQUE [indexName] (username(length))

Καθορίστε απευθείας κατά τη δημιουργία του πίνακα

CREATE TABLE mytable(  
 
ID INT NOT NULL,   
 
username VARCHAR(16) NOT NULL,  
 
UNIQUE [indexName] (username(length))  
 
);  

Προσθέστε και αφαιρέστε ευρετήρια χρησιμοποιώντας την εντολή ALTER

Υπάρχουν τέσσερις τρόποι για να προσθέσετε ένα ευρετήριο σε έναν πίνακα δεδομένων:

  • ΑΛΛΑΓΗ ΠΙΝΑΚΑ tbl_name ΠΡΟΣΘΗΚΗ ΚΥΡΙΟΥ ΚΛΕΙΔΙΟΥ (στήλη_λίστα): Αυτή η δήλωση προσθέτει ένα πρωτεύον κλειδί, που σημαίνει ότι οι τιμές του ευρετηρίου πρέπει να είναι μοναδικές και δεν μπορούν να είναι NULL.
  • ΑΛΛΑΓΗ ΠΙΝΑΚΑ tbl_name ΠΡΟΣΘΗΚΗ ΜΟΝΑΔΙΚΟΥ ονόματος_ευρετηρίου (στήλη_λίστα): Η τιμή του ευρετηρίου που δημιουργείται από αυτήν τη δήλωση πρέπει να είναι μοναδική (εκτός από το NULL, το NULL μπορεί να εμφανίζεται πολλές φορές).
  • ΑΛΛΑΓΗ ΠΙΝΑΚΑ tbl_name ΠΡΟΣΘΗΚΗ INDEX index_name (στήλη_λίστα): Προσθέστε ένα κανονικό ευρετήριο, η τιμή του ευρετηρίου μπορεί να εμφανιστεί πολλές φορές.
  • ΑΛΛΑΓΗ ΠΙΝΑΚΑ tbl_name ΠΡΟΣΘΗΚΗ ΠΛΗΡΟΥ ΚΕΙΜΕΝΟΥ index_name (στήλη_λίστα):Η δήλωση καθορίζει το ευρετήριο ως FULLTEXT για ευρετηρίαση πλήρους κειμένου.

Το παρακάτω παράδειγμα είναι να προσθέσετε ένα ευρετήριο σε έναν πίνακα.

mysql> ALTER TABLE testalter_tbl ADD INDEX (c);

Μπορείτε επίσης να χρησιμοποιήσετε τον όρο DROP στην εντολή ALTER για απόθεση ευρετηρίων.Δοκιμάστε την ακόλουθη περίπτωση για να ρίξετε το ευρετήριο:

mysql> ALTER TABLE testalter_tbl DROP INDEX c;

Προσθέστε και αφαιρέστε πρωτεύοντα κλειδιά χρησιμοποιώντας την εντολή ALTER

Το πρωτεύον κλειδί μπορεί να ενεργήσει μόνο σε μία στήλη. Όταν προσθέτετε ένα ευρετήριο πρωτεύοντος κλειδιού, πρέπει να βεβαιωθείτε ότι το πρωτεύον κλειδί δεν είναι NULL από προεπιλογή (NOT NULL).Παραδείγματα είναι τα εξής:

mysql> ALTER TABLE testalter_tbl MODIFY i INT NOT NULL;
mysql> ALTER TABLE testalter_tbl ADD PRIMARY KEY (i);

Μπορείτε επίσης να διαγράψετε ένα πρωτεύον κλειδί με την εντολή ALTER:

mysql> ALTER TABLE testalter_tbl DROP PRIMARY KEY;

Χρειάζεται μόνο να καθορίσετε το ΠΡΩΤΕΙΟ ΚΛΕΙΔΙ κατά την απόρριψη του πρωτεύοντος κλειδιού, αλλά κατά την απόρριψη ενός ευρετηρίου, πρέπει να γνωρίζετε το όνομα του ευρετηρίου.


εμφάνιση πληροφοριών ευρετηρίου

Μπορείτε να χρησιμοποιήσετε την εντολή SHOW INDEX για να παραθέσετε τις σχετικές πληροφορίες ευρετηρίου στον πίνακα.Οι πληροφορίες εξόδου μπορούν να μορφοποιηθούν προσθέτοντας \G.

Δοκιμάστε τα ακόλουθα παραδείγματα:

mysql> SHOW INDEX FROM table_name; \G
........

Ιστολόγιο Hope Chen Weiliang ( https://www.chenweiliang.com/ ) μοιράστηκε το "MySQL Database Index Type/Create/Use Combination ALTER Statement Usage in MySQL", το οποίο είναι χρήσιμο για εσάς.

Καλώς ήρθατε να μοιραστείτε τον σύνδεσμο αυτού του άρθρου:https://www.chenweiliang.com/cwl-496.html

Καλώς ήρθατε στο κανάλι Telegram του ιστολογίου του Chen Weiliang για να λαμβάνετε τις τελευταίες ενημερώσεις!

🔔 Γίνετε ο πρώτος που θα αποκτήσει τον πολύτιμο "Οδηγό χρήσης εργαλείου τεχνητής νοημοσύνης μάρκετινγκ περιεχομένου ChatGPT" στον κορυφαίο κατάλογο του καναλιού! 🌟
📚 Αυτός ο οδηγός περιέχει τεράστια αξία, 🌟Αυτή είναι μια σπάνια ευκαιρία, μην τη χάσετε! ⏰⌛💨
Κοινοποιήστε και κάντε like αν σας αρέσει!
Η κοινή χρήση και τα like σας είναι το συνεχές μας κίνητρο!

 

发表 评论

Η διεύθυνση email σας δεν θα δημοσιευθεί. 必填 项 已 用 * 标注

κύλιση στην κορυφή