導航:首頁 > 編程大全 > 怎麼給資料庫欄位建立索引

怎麼給資料庫欄位建立索引

發布時間:2024-05-07 15:01:22

『壹』 mysql如何建立索引

我們可以通過查看索引的屬性來判斷創建索引的方法。
查看索引的語法格式如下:
SHOW INDEX FROM <表名> [ FROM <資料庫名>]
語法說明如下:
<表名>:指定需要查看索引的數據表名。
<資料庫名>:指定需要查看索引的數據表所在的資料庫,可省略。比如,SHOW INDEX FROM student FROM test; 語句表示查看 test 資料庫中 student 數據表的索引。
示例
使用 SHOW INDEX 語句查看《MySQL創建索引》一節中 tb_stu_info2 數據表的索引信息,SQL 語句和運行結果如下所示。
mysql> SHOW INDEX FROM tb_stu_info2\G
1. row
Table: tb_stu_info2
Non_unique: 0
Key_name: height
Seq_in_index: 1
Column_name: height
Collation: A
Cardinality: 0
Sub_part: NULL
Packed: NULL
Null: YES
Index_type: BTREE
Comment:
Index_comment:
1 row in set (0.03 sec)
其中各主要參數說明如下:
參數 說明
Table 表示創建索引的數據表名,這里是 tb_stu_info2 數據表。
Non_unique 表示該索引是否是唯一索引。若不是唯一索引,則該列的值為 1;若是唯一索引,則該列的值為 0。
Key_name 表示索引的名稱。
Seq_in_index 表示該列在索引中的位置,如果索引是單列的,則該列的值為 1;如果索引是組合索引,則該列的值為每列在索引定義中的順序。
Column_name 表示定義索引的列欄位。
Collation 表示列以何種順序存儲在索引中。在 MySQL 中,升序顯示值「A」(升序),若顯示為 NULL,則表示無分類。
Cardinality 索引中唯一值數目的估計值。基數根據被存儲為整數的統計數據計數,所以即使對於小型表,該值也沒有必要是精確的。基數越大,當進行聯合時,MySQL 使用該索引的機會就越大。
Sub_part 表示列中被編入索引的字元的數量。若列只是部分被編入索引,則該列的值為被編入索引的字元的數目;若整列被編入索引,則該列的值為 NULL。
Packed 指示關鍵字如何被壓縮。若沒有被壓縮,值為 NULL。
Null 用於顯示索引列中是否包含 NULL。若列含有 NULL,該列的值為 YES。若沒有,則該列的值為 NO。
Index_type 顯示索引使用的類型和方法(BTREE、FULLTEXT、HASH、RTREE)。
Comment 顯示評注。

『貳』 在數據表中索引有什麼用,怎麼建立索引

索引用於快來速找出在某個列源中有一特定值的行,不使用索引,MySQL必須從第一條記錄開始讀完整個表,直到找出相關的行,表越大,查詢數據所花費的時間就越多。建立索引的操作步驟如下:

1、首先我們打開一個要操作的數據表,如下圖所示,我們需要給name欄位添加索引。

『叄』 緔㈠紩鎬庝箞鍒涘緩

闂棰樹竴錛氱儲寮曟庝箞寤虹珛浣跨敤 濡傛灉浣犳煡璇㈢殑瀛楁甸兘鍦ㄧ儲寮曚腑錛岄偅涔堝彲浠ュ彧鏌ヨ㈢儲寮曪紝涓嶇敤鏌ヨ㈣〃錛屽氨鍙浠ヨ緭鍑烘暟鎹銆
榪欐槸寤虹儲寮曟椂鐨勪竴縐嶈冭檻銆
浣嗘槸鍦ㄤ綘榪欑嶆儏鍐典笅涓嶉傜敤銆
鎴戠寽浣犳槸鎯寵緭鍑哄ぇ鎵規暟鎹錛岃屼笉鏄鏍規嵁緔㈠紩閫夋嫨鏈夋暟鐨勯偅涔堝嚑鏉°
杈撳嚭鏁版嵁鍗犳繪暟鎹閲忚揪鍒頒竴瀹氭瘮渚嬩互鍚庯紝鍐嶇敤緔㈠紩灝辨槸嫻璐規洿澶氳祫婧愯屽緱涓嶅埌鍥炴姤浜嗐
鍥犱負鏁版嵁琛屽瓨鍌ㄥ湪鍧椾腑銆備竴鍧楀瓨澶氳屻傜敤緔㈠紩鏃舵槸鏍規嵁緔㈠紩淇℃伅錛屾瘡涓琛岃塊棶涓嬈℃暟鎹鍧椼
鏁版嵁澶氫簡浼氳嗙洊澶у氭暟鏁版嵁鍧楋紝騫朵笖涓涓鏁版嵁鍧椾細琚璁塊棶澶氭°傚氨涓嶅傚叏琛ㄦ壂鎻忎竴嬈★紝璁塊棶涓涓鍙鎹鍧楀氨鎶婅ュ潡鎵鏈夎岄兘杈撳嚭銆傝繖鏍鋒晥鐜囨渶楂樸
鎵浠ヤ綘榪欑嶆儏鍐典笉搴旇ョ敤緔㈠紩鐨勩

闂棰樹簩錛氬備綍寤虹珛涓葷儲寮 棣栧厛鏈変竴鐐逛綘娌℃湁寮勬槑鐧斤紝鏁版嵁搴撹〃鎵嶅彲浠ュ緩涓葷儲寮曪紝鑷鐢辮〃鏄涓嶈兘寤轟富緔㈠紩鐨勩備篃灝辨槸璇存暟鎹搴撹〃鍙浠ュ緩4縐嶇儲寮曪細涓葷儲寮曘佸欓夌儲寮曘佹櫘閫氱儲寮曘佸敮涓緔㈠紩銆備絾鑷鐢辮〃鍙鑳藉緩絝3縐嶇儲寮曪細鍊欓夌儲寮曘佹櫘閫氱儲寮曘佸敮涓緔㈠紩銆 濡傛灉瑕佸緩涓葷儲寮曪紝鍙浠ュ湪琛ㄨ捐″櫒紿楀彛鐨勨滅儲寮曗濋夐」鍗′腑寤虹珛錛屼絾index on 鍛戒護涓涓嶈兘寤虹珛涓葷儲寮曪紝姝ゅ懡浠ゅ彧鑳藉緩鍊欓夌儲寮曘佹櫘閫氱儲寮曞拰鍞涓緔㈠紩銆 濡傦細index on 瀛﹀彿 tag 瀛﹀彿 candidate index on 濮撳悕 tag 濮撳悕 unique index on 鎬у埆 tag 鎬у埆 錛堜笂榪頒笁涓鍛戒護鍒嗗埆鐨勬槸寤虹珛鍊欓夌儲寮曘佸敮涓緔㈠紩銆佹櫘閫氱儲寮曪級 浣哻reate table 鍛戒護涓鍙浠ュ湪鎸囧畾瀛楁靛睘鎬х殑鍚屾椂寤虹珛姝ゅ瓧孌典負涓葷儲寮曪紝鍓嶆彁涔熸槸蹇呴』鏄鏁版嵁搴撹〃銆 涓句釜渚嬪瓙錛氳佹眰鍒涘緩涓涓鈥滃︾敓鈥濇暟鎹搴撲腑鐨勨滃︾睄鈥濊〃錛屽瓧孌墊湁瀛﹀彿錛屽撳悕錛屾垚緇╋紝鍚屾椂鎸囧畾瀛﹀彿涓轟富緔㈠紩銆 open data 瀛︾敓 create table 瀛︾睄 (瀛﹀彿 C錛6) primary key ,濮撳悕 c(8),鎴愮嘩 n(5,1))

闂棰樹笁錛歰racle 鏁版嵁搴撳備綍寤虹珛緔㈠紩 濡備綍鐢ㄧ儲寮? 5鍒 鏂規硶濡備笅錛
Oracle涓寤虹珛緔㈠紩錛屼細鎻愰珮鏌ヨ㈤熷害錛 create index 緔㈠紩鍚 on 琛ㄥ悕(鍒楀悕);
渚嬪傦細
create index index_userid on tbl_detail(userid);
濡備綍鎵炬暟鎹搴撹〃鐨勪富閿瀛楁電殑鍚嶇О?
SELECT * FROM user_constraints WHERE CONSTRAINT_TYPE='P' and table_name='AAA'; select * from dba_cons_columns where CONSTRAINT_NAME='SYS_AAA';
Oracle 鍦ㄥ壋寤轟富閿錛堝彲浠ヤ笉鍔燾onstrai嫻畉 SYS_AAA錛夛紝浼氫負搴撹〃鑷鍔ㄥ壋寤虹儲寮曪紝
緔㈠紩鐨勫垪涓轟富閿鍒椼 騫朵笖褰撳簱琛ㄦ煇浜涘垪鍚嶆垨鑰呭簱琛ㄥ悕鏀瑰彉鏃跺欙紝
Oracle鑷鍔ㄥ壋寤虹殑緔㈠紩SYS_AAA,涓鐨勭儲寮曞垪涔熶細鑷鍔ㄦ洿鏂幫紙綾諱技浜庤嗗浘錛夛紝騫朵笖SYS_AAA浼氫笌鍚嶅瓧鏇存敼鍚庣殑搴撹〃榪樻槸淇濇寔緔㈠紩鍏崇郴銆 鍏抽敭緋葷粺搴撹〃錛 desc dba_constraints desc dba_cons_columns
desc dba_indexes desc dba_ind_columns desc DBA_TAB_COLUMNS
渚嬪瓙1錛氭洿鏀瑰簱琛ㄧ殑鍒楀悕
ALTER TABLE AAA RENAME COLUMN ID TO AAA_ID; create table AAA ( ID NUMBER(8), NAME CHAR(20),
constraint SYS_AAA primary key(ID) );
鏌ユ壘綰︽潫鍚嶅瓧
select c.CONSTRAINT_NAME,c.table_name,cc.COLUMN_NAME from user_constraints c, user_cons_columns cc
where c.constraint_name=cc.constraint_name and c.table_name ='AAA' AND C.CONSTRAINT_TYPE='P';
CONSTRAINT_NAME TABLE_NAME COLUMN_NAME ------------------------------ ------------ ------------- SYS_AAA AAA ID
鏌ユ壘緔㈠紩
select index_name,index_type,uniqueness from user_indexes where table_name='AAA'; INDEX_NAME INDEX_TYPE UNIQUENES

闂棰樺洓錛歸ord涓濡備綍寤虹珛緔㈠紩 1.瑕佺紪鍏ョ洰褰曠殑琛屽湪鏈夋f枃瀛楁牱鏍忕偣涓嬫媺閫夐」鏍峰紡閲岃劇疆鎴愭爣棰.鍚屾椂涔熷彲浠ユ洿鏀瑰瓧棰樺強澶у皬,浣嗚佷嬌鐢ㄦ牱寮忎負鏍囬樻墠鍙浠.濡傛灉浣犲湪緙栧啓WORD鏂囨。鏃朵嬌鐢ㄤ簡鏍囬樻牱寮,絎涓姝ョ暐.
2.瑙嗗浘鐢ㄥぇ綰茶嗗浘鏂瑰紡,鎵撳紑鏂囨。緇撴瀯瑙嗗浘,鐢ㄥ悜宸﹀悜鍙崇澶磋皟鏁寸洰褰曞ぇ綰茬駭鍒鍚堥備負濂.
3.鍏夋爣縐誨埌鏈涓婇潰. 4.鎻掑叆緔㈠紩鍜岀洰褰,鐐圭洰褰曟爣絳.
5.紜瀹,瀹屾垚.

闂棰樹簲錛氬備綍鍒涘緩絀洪棿緔㈠紩 into user_sdo_geom_metadata(table_name,COLUMN_NAME, DIMINFO, SRID)
values(
't_city',
'GEOMETRY',
MDSYS.SDO_DIM_ARRAY(
MDSYS.SDO_DIM_ELEMENT('X',-180,180,0.005),
MDSYS.SDO_DIM_ELEMENT('Y',-90,90,0.005)
),
8307
)

闂棰樺叚錛歴ql鎬庝箞寤虹珛緔㈠紩 CREATE INDEX
涓虹粰瀹氳〃鎴栬嗗浘鍒涘緩緔㈠紩銆
鍙鏈夎〃鎴栬嗗浘鐨勬墍鏈夎呮墠鑳戒負琛ㄥ壋寤虹儲寮曘傝〃鎴栬嗗浘鐨勬墍鏈夎呭彲浠ラ殢鏃跺壋寤虹儲寮曪紝鏃犺鴻〃涓鏄鍚︽湁鏁版嵁銆傚彲浠ラ氳繃鎸囧畾闄愬畾鐨勬暟鎹搴撳悕縐幫紝涓哄彟涓涓鏁版嵁搴撲腑鐨勮〃鎴栬嗗浘鍒涘緩緔㈠紩銆
璇娉
CREATE [ UNIQUE ] [ CLUSTERED | NONCLUSTERED ] INDEX index_name
ON { table | view } ( column [ ASC | DESC ] [ ,...n ] )
[ WITH [ ,...n] ]
[ ON filegroup ]
::=
{ PAD_INDEX |
FILLFACTOR = fillfactor |
IGNORE_DUP_KEY |
DROP_EXISTING |
STATISTICS_NOREPUTE |
SORT_IN_TEMPDB
}
--榪欐槸鍩烘湰璇娉曪紝寤虹珛緔㈠紩錛屽彧閽堝規煡璇㈠拰涓浜涙洿鏂板拰鍒犻櫎鐨勯熷害錛屽儚鎬у埆涓鍒楋紝濡傛灉琛ㄩ噷闈㈡湁1000琛岋紝濡傛灉鍙鏈1琛屾槸鐢鳳紝榪欐牱鐢ㄧ儲寮曠殑璇濊偗瀹氶珮錛屽傛灉鏈990琛屾槸鐢鳳紝閭d箞瀹冧笉濡傜洿鎺ユ壂鎻忎簡錛岃繖鏄閫夋嫨鎬

闂棰樹竷錛氭暟鎹搴撶儲寮曟湁鍝鍑犵,鎬庢牱寤虹珛緔㈠紩 緔㈠紩鍒嗕負鑱氱皣緔㈠紩鍜岄潪鑱氱皣緔㈠紩涓ょ嶏紝鑱氱皣緔㈠紩 鏄鎸夌収鏁版嵁瀛樻斁鐨勭墿鐞嗕綅緗涓洪『搴忕殑錛岃岄潪鑱氱皣緔㈠紩灝變笉涓鏍蜂簡錛涜仛綈囩儲寮曡兘鎻愰珮澶氳屾緔㈢殑閫熷害錛岃岄潪鑱氱皣緔㈠紩瀵逛簬鍗曡岀殑媯緔㈠緢蹇銆 鏍規嵁鏁版嵁搴撶殑鍔熻兘錛屽彲浠ュ湪鏁版嵁搴撹捐″櫒涓鍒涘緩涓夌嶇儲寮曪細鍞涓緔㈠紩銆佷富閿緔㈠紩鍜岃仛闆嗙儲寮曘 鍦ㄦ暟鎹搴撹〃涓鍒涘緩鐨勭儲寮曞彲浠ユ槸鏄鍞涓緔㈠紩銆佷富閿緔㈠紩鍜岃仛闆嗙儲寮 鏅瀹夋湇鍔″櫒鍗充嬌涓烘偍瑙g瓟

闂棰樺叓錛氬備綍鍒涘緩鍞涓緔㈠紩 渚嬪傦紝濡傛灉璁″垝棰戠箒鏌ヨ employee 琛ㄤ腑錛堝叾涓涓婚敭涓 emp_id錛夌殑韜浠借瘉鍙風爜 (ssn)鍒楋紝騫跺笇鏈涚『淇濊韓浠借瘉鍙風爜鏄鍞涓鐨勶紝鍒欏彲浠ュ湪 ssn 涓婂壋寤哄敮涓緔㈠紩銆傚傛灉鐢ㄦ埛涓轟竴涓浠ヤ笂鐨勯泧鍛樿緭鍏ョ浉鍚岀殑韜浠借瘉鍙風爜錛屽垯鏁版嵁搴撳皢鏄劇ず閿欒鑰屼笖鏃犳硶淇濆瓨璇ヨ〃銆傚湪鍒涘緩鎴栦慨鏀瑰敮涓緔㈠紩鏃訛紝鍙浠ュ彲璁劇疆涓涓蹇界暐閲嶅嶉敭鐨勯夐」銆傚傛灉姝ら夐」宸茶劇疆涓衡滄槸鈥濓紝褰撴偍璇曞浘閫氳繃娣誨姞褰卞搷澶氳岀殑鏁版嵁鏉ュ壋寤洪噸澶嶉敭錛堜嬌鐢 INSERT 璇鍙ワ級鏃訛紝鍒欎笉浼氭坊鍔犲寘鍚閲嶅嶉」鐨勮岋紱濡傛灉姝ら夐」璁劇疆涓衡滃惁鈥濓紝鍒欐暣涓鎻掑叆鎿嶄綔灝嗗け璐ワ紝騫朵笖灝嗗洖婊氭墍鏈夋暟鎹銆 鍒涘緩鍞涓緔㈠紩 鍦ㄥ硅薄璧勬簮綆$悊鍣ㄤ腑錛屽彸閿鍗曞嚮琛錛屽啀鍗曞嚮鈥滆捐♀濄傛ゆ椂錛屽皢鍦ㄨ〃璁捐″櫒涓鎵撳紑璇ヨ〃銆傚湪琛ㄨ捐″櫒鑿滃崟涓婏紝鍗曞嚮鈥滅儲寮/閿鈥濄傚崟鍑燴滄坊鍔犫濄傗滈夊畾鐨勪富/鍞涓閿鎴栫儲寮曗濆垪琛ㄥ皢鏄劇ず鏂扮儲寮曠殑緋葷粺鍒嗛厤鍚嶇О銆傚湪緗戞牸涓錛屽崟鍑燴滅被鍨嬧濄備粠灞炴у彸渚х殑涓嬫媺鍒楄〃涓閫夋嫨鈥滅儲寮曗濄傚湪鈥滃垪鈥濅笅錛岄夋嫨瑕佺紪鍒剁儲寮曠殑鍒椼傛渶澶氬彲閫夋嫨 16 鍒椼備負鑾峰緱鏈浣崇殑鎬ц兘錛岃峰彧涓烘瘡涓緔㈠紩閫夋嫨涓鍒楁垨涓ゅ垪銆傚逛簬鎵閫夌殑姣忎竴鍒楋紝鎸囧畾緔㈠紩鏄浠ュ崌搴忚繕鏄浠ラ檷搴忔潵鎺掑垪姝ゅ垪鐨勫箋傚湪緗戞牸涓錛屽崟鍑燴滄槸鍞涓鐨勨濄備粠灞炴у彸渚х殑涓嬫媺鍒楄〃涓閫夋嫨鈥滄槸鈥濄傚傛灉甯屾湜蹇界暐浼氬湪鍞涓緔㈠紩涓鍒涘緩閲嶅嶉敭錛堢敤 INSERT 璇鍙ワ級鐨勬暟鎹錛岃烽夋嫨鈥滃拷鐣ラ噸澶嶉敭鈥濋夐」騫墮夋嫨鈥滄槸鈥濄傚湪淇濆瓨琛ㄦ垨鍏崇郴鍥炬椂灝嗗湪鏁版嵁搴撲腑鍒涘緩璇ョ儲寮曘傛敞鎰忥細濡傛灉鍗曚釜鍒楀湪澶氳屼腑鍖呭惈 NULL錛屽垯鏃犳硶瀵硅ュ垪鍒涘緩鍞涓緔㈠紩銆傚悓鏍鳳紝濡傛灉鍒楃殑緇勫悎鍦ㄥ氳屼腑鍖呭惈 NULL錛屽垯鏃犳硶瀵瑰氫釜鍒楀壋寤哄敮涓緔㈠紩銆傚湪榪涜岀儲寮曟椂錛屽畠浠閮借瑙嗕負閲嶅嶅箋

闂棰樹節錛氭庝箞鍒涘緩鏁版嵁搴撶殑緔㈠紩 鎵撲釜姣旀柟
create table t1(a int);
create index i1 on t1(a);
閭d箞t1琛ㄧ殑鍒梐灝卞壋寤轟簡緔㈠紩銆備互鍚庢煡璇t1琛錛屽垪a鏈夋煡璇㈡潯浠剁殑鏃跺欏氨鍙浠ョ敤鍒拌繖涓緔㈠紩銆
浣跨敤緔㈠紩鎻愰珮鏌ヨ㈡晥鐜囨槸鏁版嵁搴撹嚜宸辯殑浜嬫儏錛屼竴鑸鎯呭喌涓嬩笉闇瑕佷漢涓哄共棰勭儲寮曠殑浣跨敤

闂棰樺嶮錛歰racle寤虹珛緔㈠紩 瀵逛笁涓瀛楁靛緩絝嬬儲寮曪細
create index Stuname on student(name);
create index Stusex on student(sex);
create index Stugrade on student(grade);
娉ㄦ剰鐨勯棶棰橈紝鑰冭檻鏄涓嶆槸瑕佸緩絝嬪敮涓緔㈠紩錛坲nique錛夛紝濡傛灉鏈夊﹀彿鐨勮瘽錛屽彲浠ヨ冭檻寤虹珛鍞涓緔㈠紩寮曘
鍐嶅氨鏄瀵圭粡甯告煡璇錛屼絾鍙堢浉瀵圭ǔ瀹氱殑鍙浠ュ緩絝嬭仛綈囩儲寮曪紝鎻愰珮鏌ヨ㈡晥鐜

『肆』 在sql中,建立索引用的命令是

創建索引的操作,可以使用alter命令或者create命令,其語法如下
alter table 表名 add index 索引名 (column_list) ;
alter table 表名 add unique (column_list) ;
alter table 表名 add primary key (column_list) ;
這三個分別為創建一般索引,唯一索引,主鍵索引,其中column_list為表的 欄位名稱,多個欄位可以使用逗號隔開。
create的方式創建索引,不能創建主鍵索引

create index 索引名on 表名 (column_list) ;
create unique index 索引名 on 表名 (column_list) ;

閱讀全文

與怎麼給資料庫欄位建立索引相關的資料

熱點內容
app有十萬用戶是什麼概念 瀏覽:285
g73車球頭怎麼編程的 瀏覽:940
資料庫管理的優點是 瀏覽:617
安卓毫秒計時器 瀏覽:92
hmci模組找不到文件 瀏覽:348
可復制日語qq網名 瀏覽:586
電信大數據平台 瀏覽:348
如何輸出一個json數據 瀏覽:274
未來的編程語言是什麼 瀏覽:694
編程上path是什麼意思 瀏覽:683
u盤外殼3d源文件 瀏覽:298
中小學如何有效開展編程教育 瀏覽:6
如何快速拷貝大文件 瀏覽:406
正柏網路是什麼 瀏覽:834
快手裡下載的文件在哪裡找 瀏覽:742
word跨頁單元格重復 瀏覽:616
電視上如何打開壓縮文件 瀏覽:328
電腦管家桌面文件整理 瀏覽:770
樓宇編程是什麼 瀏覽:802
紅警二文件夾 瀏覽:541

友情鏈接