Aina ya faharasa ya hifadhidata ya MySQL/unda/tumia mchanganyiko wa matumizi ya taarifa ya ALTER katika MySQL

MySQLaina ya faharisi/unda/tumia badilisha mseto ndaniMySQLmatumizi ya taarifa ya amri

Faharisi za MySQL

Uanzishaji wa faharasa ya MySQL ni muhimu sana kwa utendakazi mzuri wa MySQL, na faharasa inaweza kuboresha sana kasi ya urejeshaji wa MySQL.

Kwa mfano, ikiwa MySQL iliyo na muundo unaofaa na matumizi ya faharisi ni Lamborghini, basi MySQL bila faharisi na faharisi ni baiskeli ya binadamu.

Faharasa imegawanywa katika faharasa ya safu wima moja na faharasa ya mchanganyiko.Faharasa ya safu wima moja, yaani, faharasa ina safu wima moja tu, jedwali linaweza kuwa na faharasa nyingi za safu wima moja, lakini hii si faharasa yenye mchanganyiko.Faharasa ya mchanganyiko, yaani, faharasa ina safu wima nyingi.

Wakati wa kuunda faharisi, unahitaji kuhakikisha kuwa faharisi ni hali ambayo inatumika kwa swali la SQL (kawaida kama hali ya kifungu cha WHERE).

Kwa kweli, faharisi pia ni jedwali, jedwali huhifadhi ufunguo wa msingi na sehemu za faharisi, na huelekeza kwenye rekodi za jedwali la chombo.

Hapo juu wanazungumza juu ya faida za kutumia faharisi, lakini matumizi mengi ya faharisi yatasababisha unyanyasaji.Kwa hivyo, faharisi pia itakuwa na mapungufu yake: ingawa faharisi inaboresha sana kasi ya hoja, itapunguza kasi ya kusasisha jedwali, kama vile INSERT, UPDATE na DELETE kwenye jedwali.Kwa sababu wakati wa kusasisha meza, MySQL sio tu kuokoa data, lakini pia huhifadhi faili ya index.

Kuorodhesha faili ya faharisi ambayo hutumia nafasi ya diski.


index ya kawaida

tengeneza index

Hii ni index ya msingi zaidi, haina vikwazo.Inaweza kuundwa kwa njia zifuatazo:

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

Kwa aina za CHAR na VARCHAR, urefu unaweza kuwa chini ya urefu halisi wa sehemu; kwa aina za BLOB na TEXT, urefu lazima ubainishwe.

Rekebisha muundo wa jedwali (ongeza fahirisi)

ALTER table tableName ADD INDEX indexName(columnName)

Taja moja kwa moja wakati wa kuunda meza

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

Sintaksia ili kudondosha faharasa

DROP INDEX [indexName] ON mytable; 

index ya kipekee

Ni sawa na faharisi ya kawaida ya hapo awali, tofauti ni: thamani ya safu wima lazima iwe ya kipekee, lakini maadili matupu yanaruhusiwa.Katika kesi ya faharisi ya mchanganyiko, mchanganyiko wa maadili ya safu lazima uwe wa kipekee.Inaweza kuundwa kwa njia zifuatazo:

tengeneza index

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

Badilisha muundo wa meza

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

Taja moja kwa moja wakati wa kuunda meza

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

Ongeza na uondoe faharisi kwa kutumia amri ya ALTER

Kuna njia nne za kuongeza fahirisi kwenye jedwali la data:

  • ALTER TABLE tbl_name ONGEZA UFUNGUO WA MSINGI (orodha_ya_safu): Taarifa hii inaongeza ufunguo msingi, ambayo ina maana kwamba thamani za fahirisi lazima ziwe za kipekee na haziwezi kuwa NULL.
  • ALTER TABLE tbl_name ONGEZA UNIQUE index_name (orodha_ya_safu): Thamani ya faharasa iliyoundwa na taarifa hii lazima iwe ya kipekee (isipokuwa NULL, NULL inaweza kuonekana mara nyingi).
  • ALTER TABLE tbl_name ONGEZA INDEX index_name (orodha_ya_safu): Ongeza index ya kawaida, thamani ya index inaweza kuonekana mara nyingi.
  • ALTER TABLE tbl_name ONGEZA FULLTEXT index_name (orodha_ya safu wima):Taarifa hiyo inabainisha faharasa kama FULLTEXT kwa faharasa ya maandishi kamili.

Mfano ufuatao ni kuongeza fahirisi kwenye jedwali.

mysql> ALTER TABLE testalter_tbl ADD INDEX (c);

Unaweza pia kutumia kifungu cha DROP kwenye amri ya ALTER kudondosha faharasa.Jaribu mfano ufuatao ili kuacha index:

mysql> ALTER TABLE testalter_tbl DROP INDEX c;

Ongeza na uondoe funguo za msingi kwa kutumia amri ya ALTER

Ufunguo msingi unaweza tu kutenda kwenye safu wima moja. Unapoongeza faharasa ya ufunguo msingi, unahitaji kuhakikisha kuwa ufunguo msingi si NULL kwa chaguo-msingi (SIO BATILI).Mifano ni kama ifuatavyo:

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

Unaweza pia kufuta kitufe cha msingi na ALTER amri:

mysql> ALTER TABLE testalter_tbl DROP PRIMARY KEY;

Unahitaji tu kutaja UFUNGUO WA MSINGI wakati wa kuacha ufunguo wa msingi, lakini wakati wa kuacha index, lazima ujue jina la index.


onyesha habari ya index

Unaweza kutumia amri ya SHOW INDEX kuorodhesha maelezo muhimu ya faharasa kwenye jedwali.Habari ya pato inaweza kufomatiwa kwa kuongeza \G.

Jaribu mifano ifuatayo:

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

Hope Chen Weiliang Blog ( https://www.chenweiliang.com/ ) ilishirikiwa "MySQL Database Index Type/Create/Tuse Combination ALTER Statement Matumizi katika MySQL", ambayo ni ya manufaa kwako.

Karibu kushiriki kiungo cha makala hii:https://www.chenweiliang.com/cwl-496.html

Karibu kwenye chaneli ya Telegramu ya blogu ya Chen Weiliang ili kupata masasisho mapya zaidi!

🔔 Kuwa wa kwanza kupata "Mwongozo wa Matumizi ya Zana ya AI ya Uuzaji wa Maudhui ya ChatGPT" katika saraka ya juu ya kituo! 🌟
📚 Mwongozo huu una thamani kubwa, 🌟Hii ni fursa adimu, usiikose! ⏰⌛💨
Share na like ukipenda!
Kushiriki kwako na kupenda kwako ndio motisha yetu inayoendelea!

 

发表 评论

Anwani yako ya barua pepe haitachapishwa. 必填 项 已 用 * 标注

tembeza juu