程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL索引操作敕令小結

MySQL索引操作敕令小結

編輯:MySQL綜合教程

MySQL索引操作敕令小結。本站提示廣大學習愛好者:(MySQL索引操作敕令小結)文章只能為提供參考,不一定能成為您想要的結果。以下是MySQL索引操作敕令小結正文


創立索引

創立索引的語法是:


CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name
    [USING index_type]
    ON tbl_name (index_col_name,...)
 
index_col_name:
    col_name [(length)] [ASC | DESC]

關於CHAR和VARCHAR列,只用一列的一部門便可創立索引。創立索引時,應用col_name(length)語法,對前綴編制索引。前綴包含每列值的前length個字符。BLOB和TEXT列也能夠編制索引,然則必需給出前綴長度。

此處展現的語句用於創立一個索引,索引應用列稱號的前10個字符。


CREATE INDEX part_of_name ON customer (name(10));

由於多半稱號的前10個字符平日分歧,所以此索引不會比應用列的全名創立的索引速度慢許多。別的,應用列的一部門創立索引可使索引文件年夜年夜減小,從而節儉了年夜量的磁盤空間,有能夠進步INSERT操作的速度。

前綴最長為255字節。關於MyISAM和InnoDB表,前綴最長為1000字節。留意前綴的限長以字節計,而CREATE INDEX語句中的前綴長度指的是字符的數量。關於應用多字節字符集的列,在指定列的前綴長度時,要斟酌這一點。

在MySQL中:

·只要當您正在應用MyISAM, InnoDB或BDB表類型時,您可以向有NULL值的列中添加索引。

·只要當您正在應用MyISAM, BDB或InnoDB表類型時,您可以向BLOB或TEXT列中添加索引。

一個index_col_name規約可以以ASC或DESC為開頭。這些症結詞未來可以擴大,用於指定遞增或遞加索引值存儲。今朝,這些症結詞被剖析,然則被疏忽;索引值均以遞增次序存儲。

部門貯存引擎許可在創立索引時指定索引類型。index_type指定語句的語法是USING type_name。分歧的貯存引擎所支撐的type_name值已顯示鄙人表中。假如列有多個索引類型,當沒有指定index_type時,第一個類型是默許值。

存儲引擎

許可的索引類型

MyISAM

BTREE

InnoDB

BTREE

MEMORY/HEAP

HASH, BTREE

示例:


CREATE TABLE lookup (id INT) ENGINE = MEMORY;
CREATE INDEX id_index USING BTREE ON lookup (id);

TYPE type_name可以作為USING type_name的同義詞,用於指定索引類型。然則,USING是首選的格局。別的,在索引規約語法中,位於索引類型後面的索引稱號不克不及應用TYPE。這是由於,與USING分歧,TYPE不是保存詞,是以會被以為是一個索引稱號。

假如您指定的索引類型在給定的貯存引擎中不正當,然則有其它的索引類型合適引擎應用,而且不會影響查詢功效,則引擎應應用此類型。

FULLTEXT索引只能對CHAR, VARCHAR和TEXT列編制索引,而且只能在MyISAM表中編制。

SPATIAL索引只能對空間列編制索引,而且只能在MyISAM表中編制。

應用alter的辦法創立索引


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) ;

查詢索引


SHOW INDEX FROM table_name;

刪除索引


drop index index_name on table_name ;
alter table table_name drop index index_name ;
alter table table_name drop primary key ;

個中,在後面的兩條語句中,都刪除table_name中的索引index_name。而在最初一條語句中,只在刪除PRIMARY KEY索引中應用,由於一個表只能夠有一個PRIMARY KEY索引,是以不須要指定索引名。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved