导航:首页 > 编程大全 > 怎么给数据库字段建立索引

怎么给数据库字段建立索引

发布时间: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) ;

阅读全文

与怎么给数据库字段建立索引相关的资料

热点内容
未来的编程语言是什么 浏览:694
编程上path是什么意思 浏览:683
u盘外壳3d源文件 浏览:298
中小学如何有效开展编程教育 浏览:6
如何快速拷贝大文件 浏览:406
正柏网络是什么 浏览:834
快手里下载的文件在哪里找 浏览:742
word跨页单元格重复 浏览:616
电视上如何打开压缩文件 浏览:328
电脑管家桌面文件整理 浏览:770
楼宇编程是什么 浏览:802
红警二文件夹 浏览:541
大的mht文件打不开 浏览:467
会计怎么把数据汇总成一本书 浏览:516
哪里有100g的大文件 浏览:837
linux不支持usb文件系统怎么办 浏览:844
如何给公司抬头文件加红线 浏览:818
企业门户网站模板html 浏览:208
为什么找不到备份的文件 浏览:918
touchjs委托 浏览:450

友情链接