[TOC] # CREATE INDEX ## 描述 该语句用来创建索引。索引是创建在表上的,对数据库表中一列或多列的值进行排序的一种结构。其作用主要在于提高查询的速度,降低数据库系统的性能开销。 ## 格式 ~~~ CREATE [UNIQUE] INDEX indexname      ON tblname (index_col_name,...) [index_type] [index_options] index_type: USING BTREE index_options: index_option [index_option…] index_option: GLOBAL | LOCAL | COMMENT 'string' | COMPRESSION [=] {NONE | LZ4_1.0 | LZO_1.0 | SNAPPY_1.0 | ZLIB_1.0} | BLOCK_SIZE [=] size | STORING(columname_list) | VISIBLE | INVISIBLE index_col_name: colname [(length)] [ASC | DESC] columname_list: colname [, colname…] ~~~ ## 参数解释 <table data-tag="table" id="table-st8-5fo-oyy" class="table"><colgroup width="337" span="1" data-tag="col" id="col-woq-962-1dy" colwidth="1*" colnum="1" colname="col1" style="width:50%" class="col"></colgroup><colgroup width="361" span="1" data-tag="col" id="col-ozg-8ae-ocm" colwidth="1*" colnum="2" colname="col2" style="width:50%" class="col"></colgroup><thead id="thead-dn7-jer-upd" class="thead"><tr id="tr-0cu-5y2-34u"><th id="td-8sn-dc4-h42"><p id="p-1pg-afq-j0d"><b>参数</b></p></th><th id="td-nc3-nxt-ycz"><p id="p-gfz-vcp-tu3"><b>描述</b></p></th></tr></thead><tbody data-tag="tbody" id="tbody-w1v-jsp-rh4" class="tbody"><tr data-tag="tr" id="tr-xwh-qs6-xxv" class="tr"><td data-tag="td" id="td-bn7-6su-w5i" class="td"><p data-tag="p" id="p-tza-5o0-927" class="p">indexname</p></td><td data-tag="td" id="td-ybe-dq9-o83" class="td"><p data-tag="p" id="p-dob-2sr-475" class="p">指定要创建的索引名称。</p></td></tr><tr data-tag="tr" id="tr-p23-228-8nl" class="tr"><td data-tag="td" id="td-39s-gcv-1r5" class="td"><p data-tag="p" id="p-c13-alj-cpl" class="p">tblname</p></td><td data-tag="td" id="td-4pe-s81-nvm" class="td"><p data-tag="p" id="p-td2-xis-e0t" class="p">指过索引所属的表名。</p></td></tr><tr data-tag="tr" id="tr-kt9-mn6-c80" class="tr"><td data-tag="td" id="td-yg5-xlk-n72" class="td"><p id="p-w19-r6b-8hl">index_col_name</p></td><td data-tag="td" id="td-1yt-5o8-ykw" class="td"><p data-tag="p" id="p-z4a-aq4-rks" class="p">指定索引的列名,每个列名后都支持ASC(升序),不支持DESC(降序)。默认为升序。</p><p data-tag="p" id="p-z7r-w5k-jzu" class="p">建立索引的排序方式为:首先以index_col_name中第一个列的值排序;该列值相同的记录,按下一列名的值排序;以此类推。</p></td></tr><tr data-tag="tr" id="tr-bl6-6b6-m25" class="tr"><td data-tag="td" id="td-kaj-m5r-0hk" class="td"><p id="p-vtn-qqr-vv1">index_type</p></td><td data-tag="td" id="td-chu-v3p-8h4" class="td"><p data-tag="p" id="p-xjk-szr-u8w" class="p">索引类型,只支持USING BTREE,以B树为索引。</p></td></tr><tr data-tag="tr" id="tr-bjy-8sk-byh" class="tr"><td data-tag="td" id="td-fwe-b02-fol" class="td"><p id="p-dqg-6ek-oha">UNIQUE</p></td><td data-tag="td" id="td-ww5-eca-8me" class="td"><p data-tag="p" id="p-l47-4zv-tpo" class="p">指定为唯一索引。</p></td></tr><tr data-tag="tr" id="tr-qq8-rl5-fhs" class="tr"><td data-tag="td" id="td-86o-zao-zrm" class="td"><p id="p-4b5-dhy-u5q">index_option</p></td><td data-tag="td" id="td-9eb-ocr-r95" class="td"><p data-tag="p" id="p-d4d-b8o-kc7" class="p">指定索引选项,多个index_option以空格分隔。</p></td></tr><tr data-tag="tr" id="tr-zq8-i2h-9ut" class="tr"><td data-tag="td" id="td-j0b-lcw-b27" class="td"><p data-tag="p" id="p-tl4-cj1-peg" class="p">GLOBAL | LOCAL</p></td><td data-tag="td" id="td-ce2-duh-rld" class="td"><p data-tag="p" id="p-nym-nti-uv2" class="p">指定该索引是全局索引或局部索引,默认是GLOBAL。</p></td></tr><tr data-tag="tr" id="tr-sz8-9s0-mcy" class="tr"><td data-tag="td" id="td-snp-2q8-ot1" class="td"><p data-tag="p" id="p-pl5-4rg-3sh" class="p">COMMENT</p></td><td data-tag="td" id="td-w25-l8k-pat" class="td"><p data-tag="p" id="p-nls-dk1-ue6" class="p">指定注释。</p></td></tr><tr data-tag="tr" id="tr-fkb-k45-gk8" class="tr"><td data-tag="td" id="td-h8r-19x-b6c" class="td"><p data-tag="p" id="p-60k-9ug-1ok" class="p">COMPRESSION</p></td><td data-tag="td" id="td-62h-7m8-sz5" class="td"><p data-tag="p" id="p-p1f-b53-xzr" class="p">指定压缩算法。</p></td></tr><tr data-tag="tr" id="tr-nph-w4p-xt6" class="tr"><td data-tag="td" id="td-0dl-ld6-lx4" class="td"><p data-tag="p" id="p-tgb-i4k-dsq" class="p">BLOCK_SIZE</p></td><td data-tag="td" id="td-1sl-t2z-op8" class="td"><p data-tag="p" id="p-rvf-0n8-pws" class="p">指定微块大小。</p></td></tr><tr data-tag="tr" id="tr-ctx-g9k-deo" class="tr"><td data-tag="td" id="td-wwu-sau-kyn" class="td"><p id="p-e5d-6a2-of4">STORING</p></td><td data-tag="td" id="td-btj-dj7-dy1" class="td"><p data-tag="p" id="p-5sc-61l-mxw" class="p">表示索引表中冗余存储某些列,以提高系统查询性能。</p></td></tr></tbody></table> ## 示例 1. 执行以下命令,创建表test。 ~~~ CREATE TABLE test (c1 int primary key, c2 VARCHAR(10)); ~~~ 2. 执行以下命令,创建表test的索引。 ~~~ CREATE INDEX test_index ON test (c1, c2 DESC); ~~~ 3. 执行以下命令,查看表test的索引。 ~~~ SHOW INDEX FROM test; ~~~