索引
假如你用新华字典来查找“张”这个汉字,不使用目录的话,你可能要从新华字典的第一页找到最后一页,可能要花二个小时。
字典越厚呢,你花的时间就越多。
现在你使用目录来查找“张”这个汉字,张的首字母是z,z开头的汉字从900多页开始,有了这条线索,你查找一个汉字可能只要一分钟,
由此可见索引的重要性。
索引用于快速找出在某个列中有一特定值的行
当然索引也不易过多,索引越多写入,修改的速度越慢。因为,写入修改数据时,也要修改索引。
索引分为:
普通索引
唯一索引(字段信息不得有重复)
主键索引 (特殊的唯一索引,字段信息不得为空)
全文索引 (对于需要全局搜索的数据,进行全文索引
)
1. 普通索引创建MUL
语法格式:alter table 表名 add index(字段名)
MariaDB [dazhu]> alter table xueyuan add index(性别); Query OK, 0 rows affected (0.10 sec) Records: 0 Duplicates: 0 Warnings: 0
2. 唯一索引创建UNI
语法格式:alter table 表名 add unique(姓名);
MariaDB [dazhu]> alter table xueyuan add unique(姓名); Query OK, 0 rows affected (0.09 sec) Records: 0 Duplicates: 0 Warnings: 0
3. 主键索引创建:PRI
语法格式:alter table 表名 add primary key(字段名);
ariaDB [dazhu]> alter table xueyuan add primary key(成绩); Query OK, 0 rows affected (0.12 sec) Records: 0 Duplicates: 0 Warnings: 0
4.创建全文索引:
语法格式:alter table 表名 add fulltext(字段名);
5. 创建表时添加索引:
创建表时可在创建表语句后加上对应的类型即可声明索引:
PRIMARY KEY(字段)
INDEX [索引名] (字段)
FULLTEXT [索引名] (字段)
UNIQUE[索引名] (字段)
注:中括号中的索引名,代表可选。
整体示例如下:
CREATE TABLE test ( id INT NOT NULL , username VARCHAR(20) NOT NULL , password INT NOT NULL , content VARCHAR(20) , PRIMARY KEY (id), INDEX pw (password), UNIQUE (username),FULLTEXT (content)) ENGINE = InnoDB;