Հոդվածների տեղեկատու
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 ալիք՝ վերջին թարմացումները ստանալու համար:
📚 Այս ուղեցույցը պարունակում է հսկայական արժեք, 🌟Սա հազվագյուտ հնարավորություն է, բաց մի՛ թողեք այն։ ⏰⌛💨
Տարածեք և հավանեք, եթե հավանեցիք:
Ձեր տարածումը և հավանումները մեր շարունակական շարժառիթն են: