添加索引


創建一個class的表, 注意:這里的引號不是英文引號

CREATE TABLE `class` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(20) NOT NULL COMMENT '用戶名',
`sex` TINYINT(4) NOT NULL COMMENT '性別',
`age` INT(4) NOT NULL COMMENT '年齡',
`time` datetime(0) NULL DEFAULT NULL COMMENT '時間',
`desc` VARCHAR(20) NOT NULL COMMENT '詳情',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic COMMENT '班級表';

 

1主鍵索引

主鍵索引一般在建表的時候添加,一般都是id,自動遞增

建立表后添加主鍵索引

alter table 'class' add primary key (' id')

特點:不能為空並且唯一

2普通索引

一張表中的普通索引可以有多個

alter table 'class' add index  index_name (‘name’)

index_name是索引名

3唯一索引

alter table 'class' add UNIQUE ('name')

唯一索引和主鍵索引的區別

唯一索引可以有多個null,但是數據內容不能重復

主鍵索引不能為null,內容唯一

4全文索引

alter table 'class' add FULLTEXT ('name')

全文索引主要針對於文本文件,比如標題文章

5多字段索引

alter table 'class' add  index index_name (`name`, `sex`, `desc` )

6什么時候開始引用索引

6.1頻繁查詢的字段,應該創建索引

6.2更新非常頻繁的字段,不應該創建索引

6.3唯一性太差的字段,應該創建索引

6.4不會出現在where條件之后的字段,不應該創建索引。

7索引的使用情況

7.1對於創建的多列索引,查詢左邊的索引的列,索引會被使用到,

eg: alter table 'class' add  index index_name (`name`, `sex`, `desc` )

select *  from class where name ='張三';會被使用到索引

select * from class where desc='張三';不會用到索引

7.2對於模糊查詢,like '%張三'不會用到索引,like ‘張三%’會用到索引

7.3如果條件中含有or,不會用到索引

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM