mysql索引操作

 1.  創建索引

在執行CREATE TABLE語句時可以創建索引,也可以單獨用CREATE INDEX或ALTER TABLE來爲表增加索引。

1>ALTER TABLE
         ALTER TABLE用來創建普通索引、UNIQUE索引或PRIMARY KEY索引。

      ALTER TABLE table_name ADD INDEX index_name (column_list)
      ALTER TABLE table_name ADD UNIQUE (column_list)
      ALTER TABLE table_name ADD PRIMARY KEY (column_list)

其中table_name是要增加索引的表名,column_list指出對哪些列進行索引,多列時各列之間用逗號分隔。索引名index_name可選,缺省時,MySQL將根據第一個索引列賦一個名稱。另外,ALTER TABLE允許在單個語句中更改多個表,因此可以在同時創建多個索引。
     2>CREATE INDEX
         CREATE INDEX可對錶增加普通索引或UNIQUE索引。

        CREATE INDEX index_name ON table_name (column_list)
        CREATE UNIQUE INDEX index_name ON table_name (column_list)

table_name、index_name和column_list具有與ALTER TABLE語句中相同的含義,索引名不可選。另外,不能用CREATE INDEX語句創建PRIMARY KEY索引。
2.  刪除索引
     可利用ALTER TABLE或DROP INDEX語句來刪除索引。類似於CREATE INDEX語句,DROP INDEX可以在ALTER TABLE內部作爲一條語句處理,語法如下。

      DROP INDEX index_name ON talbe_name
      ALTER TABLE table_name DROP INDEX index_name
      ALTER TABLE table_name DROP PRIMARY KEY

其中,前兩條語句是等價的,刪除掉table_name中的索引index_name。第3條語句只在刪除PRIMARY KEY索引時使用,因爲一個表只可能有一個PRIMARY KEY索引,因此不需要指定索引名。如果沒有創建PRIMARY KEY索引,但表具有一個或多個UNIQUE索引,則MySQL將刪除第一個UNIQUE索引。如果從表中刪除了某列,則索引會受到影響。對於多列組合的索引,如果刪除其中的某列,則該列也會從索引中刪除。如果刪除組成索引的所有列,則整個索引將被刪除。

:使用 刪除主鍵索引 mysql> alter table t_user drop primary key;

出現如下錯誤 ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key
     原因:表中主鍵字段爲自動增長導致失敗,去除自增長即可。
3.查看索引
mysql> show index from tblname;
mysql> show keys from tblname;

參數說明:
      · Table
表的名稱。
 · Non_unique
如果索引不能包括重複詞,則爲0。如果可以,則爲1。
· Key_name
索引的名稱。
· Seq_in_index
索引中的列序列號,從1開始。
 · Column_name
列名稱。
· Collation
列以什麼方式存儲在索引中。在MySQL中,有值‘A’(升序)或NULL(無分類)。
· Cardinality
索引中唯一值的數目的估計值。通過運行ANALYZE TABLE或myisamchk -a可以更新。基數根據被存儲爲整數的統計數據來計數,
    所以即使對於小型表,該值也沒有必要是精確的。基數越大,當進行聯合時,MySQL使用該索引的機會就越大。
· Sub_part
如果列只是被部分地編入索引,則爲被編入索引的字符的數目。如果整列被編入索引,則爲NULL。
· Packed
指示關鍵字如何被壓縮。如果沒有被壓縮,則爲NULL。
· Null
如果列含有NULL,則含有YES。如果沒有,則該列含有NO。
· Index_type
用過的索引方法(BTREE, FULLTEXT, HASH, RTREE)。
· Comment
       備註信息

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章