MySQL דאַטאַבייס אינדעקס טיפּ / שאַפֿן / נוצן קאָמבינאַציע ALTER ויסזאָגונג באַניץ אין MySQL

מיסקלאינדעקס טיפּ / שאַפֿן / נוצן קאָמבאָ יבערבייַטן איןמיסקלבאַפֿעלן ויסזאָגונג באַניץ

MySQL ינדעקסיז

די פאַרלייגן פון MySQL אינדעקס איז זייער וויכטיק פֿאַר די עפעקטיוו אָפּעראַציע פון ​​MySQL, און דער אינדעקס קענען שטארק פֿאַרבעסערן די ריטריוואַל גיכקייַט פון MySQL.

פֿאַר בייַשפּיל, אויב MySQL מיט גלייַך פּלאַן און נוצן פון ינדעקסיז איז אַ לאַמבאָרגהיני, דעמאָלט 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 באַפֿעל

עס זענען פיר וועגן צו לייגן אַן אינדעקס צו אַ דאַטן טיש:

  • ALTER TABLE tbl_name ADD ערשטיק שליסל (קאָלום_ליסט): דער דערקלערונג מוסיף אַ ערשטיק שליסל, וואָס מיטל אַז די אינדעקס וואַלועס מוזן זיין יינציק און קענען נישט זיין NULL.
  • ALTER TABLE tbl_name ADD UNIQUE index_name (column_list): די ווערט פון די אינדעקס באשאפן דורך דעם ויסזאָגונג מוזן זיין יינציק (אַחוץ NULL, NULL קען דערשייַנען עטלעכע מאָל).
  • ALTER TABLE tbl_name ADD INDEX index_name (column_list): לייג אַ נאָרמאַל אינדעקס, דער אינדעקס ווערט קענען דערשייַנען עטלעכע מאָל.
  • ALTER TABLE tbl_name ADD FULLTEXT אינדעקס_נאַמע (קאָלום_ליסט):דער דערקלערונג ספּעציפיצירט דעם אינדעקס ווי FULLTEXT פֿאַר פול-טעקסט ינדעקסינג.

די פאלגענדע בייַשפּיל איז צו לייגן אַן אינדעקס צו אַ טיש.

mysql> ALTER TABLE testalter_tbl ADD INDEX (c);

איר קענט אויך נוצן די DROP פּונקט אויף די ALTER באַפֿעל צו פאַלן ינדעקסיז.פּרוּווט די פאלגענדע בייַשפּיל צו פאַלן די אינדעקס:

mysql> ALTER TABLE testalter_tbl DROP INDEX c;

לייג און אַראָפּנעמען ערשטיק שליסלען ניצן די ALTER באַפֿעל

דער ערשטיק שליסל קען נאָר שפּילן אויף איין זייַל ווען אַדינג אַ ערשטיק שליסל אינדעקס, איר דאַרפֿן צו ענשור אַז דער ערשטיק שליסל איז נישט NULL דורך פעליקייַט (ניט 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 דאַטאַבאַסע אינדעקס טיפּ / שאַפֿן / נוצן קאָמבינאַציע אַלטער סטאַטעמענט באַניץ אין MySQL", וואָס איז נוציק פֿאַר איר.

ברוכים הבאים צו טיילן דעם לינק פון דעם אַרטיקל:https://www.chenweiliang.com/cwl-496.html

ברוכים הבאים צו די טעלעגראַם קאַנאַל פון Chen Weiliang ס בלאָג צו באַקומען די לעצטע דערהייַנטיקונגען!

🔔 זייט דער ערשטער צו באַקומען די ווערטפול "ChatGPT אינהאַלט מאַרקעטינג אַי געצייַג באַניץ גייד" אין די קאַנאַל שפּיץ וועגווייַזער! 🌟
📚 דער פירער כּולל ריזיק ווערט, 🌟 דאָס איז אַ זעלטן געלעגנהייט, טאָן ניט פעלן עס! ⏰⌛💨
ייַנטיילן און ווי אויב איר ווילט!
דיין ייַנטיילונג און לייקס זענען אונדזער קעסיידערדיק מאָוטאַוויישאַן!

 

发表 评论

אייער בליצפּאָסט אַדרעס וועט נישט זיין ארויס. פארלאנגט פעלדער זענען געניצט * פירמע

מעגילע צו שפּיץ