MySQL学习(十五)

索引的概念

索引是数据的目录,能快速定位数据的位置。索引提高了查询速度,降低了增删改的速度。并非加的越多越好。
一般在查询频率高的列上加,而且在重复度低的列上加效果更好。如在性别列上不用加索引,但是身份证号列上就可以加索引。
key 普通索引,就是为了加快查询速度。
unique key 唯一索引 加快速度并且约束数据。
primary key 主键索引
fulltext 全文索引

全文索引在中文情况下几乎无效。要分词+索引,一般用第三方解决方案,如sphinx

create table t16
(
    id int,
    name char(10),
	email char(20),
	primary key(id), #主键索引
	key name(name),
	unique key email(email)
);

索引长度:建索引时,可以只索引列的前一部分的内容,比如前10个字符
如 unique key email(email(10))

create table t17
(
    id int,
    name char(10),
	email char(20),
	primary key(id), #主键索引
	key name(name),
	unique key email(email(10))
);

多列索引

create table t18
(
    xing char(2),
	ming char(10), 
	key xm(xing,ming)
);

创建表,插入数据

mysql> insert into t18 values
    -> ('朱','元璋');
Query OK, 1 row affected (0.52 sec)


上面两种情况下,索引都可以发挥作用。

上面这种情况,索引没有发挥作用。
左前缀规则,索引可以发挥作用。

索引的操作

查看 show index from 表名
删除 alter table 表名 drop index 表名
或 drop index 索引名 on 表名
添加索引
alter table 表名 add [index/unique] 索引名(列名);
添加主键索引

posted @ 2019-01-06 11:21  尚修能的技术博客  阅读(152)  评论(0编辑  收藏  举报