-- 1.ALTER 建立索引 -- table_name表名,column_list列名,index_name索引名code
-- 建立index索引 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)索引
-- 2.CREATE 建立索引(不能建立主键索引) -- table_name表名,column_list列名,index_name索引名it
-- 建立index索引 CREATE INDEX index_name ON table_name (column_list) -- 建立惟一索引 CREATE UNIQUE INDEX index_name ON table_name (column_list)io
-- 3.删除索引 -- table_name表名,column_list列名,index_name索引名table
-- 删除index索引 ALTER TABLE table_name DROP INDEX index_name DROP INDEX index_name ON talbe_name -- 删除主键索引 ALTER TABLE table_name DROP PRIMARY KEY -- 删除惟一索引 ALTER TABLE table_name
DROP INDEX column_list
; ALTER TABLE table_name DROP INDEX index_name DROP INDEX index_name ON talbe_name方法
-- 4.查看索引 SHOW INDEX FROM table_name SHOW KEYS FROM table_name统计
-- 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:数据
-- 5.联合索引 -- 5.1 建立联合索引 CREATE TABLE goods
( id
varchar(20) NOT NULL, name
varchar(20) NOT NULL COMMENT '商品名称', price
varchar(20) NOT NULL COMMENT '商品价格', PRIMARY KEY (id,name) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- 5.2 给现有表添加联合索引 ALTER TABLE table_name ADD CONSTRAINT pk_name PRIMARY KEY(column_list1,column_list2); -- 5.3 删除联合索引 ALTER TABLE table_name DROP PRIMARY KEYtab