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 ԱՎԵԼԱՑՆԵԼ ՅՈՒՐԱՔԱՆԱԿԱՆ index_name (column_list): Այս հայտարարությամբ ստեղծված ինդեքսի արժեքը պետք է լինի եզակի (բացի NULL-ից, NULL-ը կարող է մի քանի անգամ հայտնվել):
  • ՓՈՓՈԽԵԼ ԱՂՅՈՒՍԱԿ tbl_name ADD INDEX index_name (column_list): Ավելացնել նորմալ ինդեքս, ինդեքսի արժեքը կարող է մի քանի անգամ հայտնվել:
  • ՓՈՓՈԽԵԼ ԱՂՅՈՒՍԱԿԸ tbl_name ԱՎԵԼԱՑՆԵԼ ԼԻՎՏԵՔՍՏ index_name (սյունակի_ցուցակ):Հայտարարությունը նշում է ինդեքսը որպես FULLTEXT ամբողջական տեքստային ինդեքսավորման համար:

Հետևյալ օրինակը աղյուսակում ինդեքս ավելացնելն է:

mysql> ALTER TABLE testalter_tbl ADD INDEX (c);

Ինդեքսները թողնելու համար կարող եք նաև օգտագործել ALTER հրամանի DROP դրույթը:Ինդեքսը հանելու համար փորձեք հետևյալ օրինակը.

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
........

Հույս 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

Բարի գալուստ Chen Weiliang-ի բլոգի Telegram ալիք՝ վերջին թարմացումները ստանալու համար:

🔔 Եղեք առաջինը, ով կստանա արժեքավոր «ChatGPT բովանդակության շուկայավարման AI գործիքի օգտագործման ուղեցույցը» ալիքի վերին գրացուցակում: 🌟
📚 Այս ուղեցույցը պարունակում է հսկայական արժեք, 🌟Սա հազվագյուտ հնարավորություն է, բաց մի՛ թողեք այն։ ⏰⌛💨
Տարածեք և հավանեք, եթե հավանեցիք:
Ձեր տարածումը և հավանումները մեր շարունակական շարժառիթն են:

 

发表 评论

Ձեր էլ. Փոստի հասցեն չի հրապարակվի: Օգտագործվում են պահանջվող դաշտերը * Պիտակ

ոլորել դեպի վերև