1.通过explain语句可以分析,mysql如何执行你的sql语句。
2.索引
1.添加
1.1主键索引添加
当一张表,把某个列设为逐渐的时候,则该列就是主键索引。
create table aaa(id int unsigned primary key auto_increment,
name varchar(32) not null default '');
如果创建表的时候,没有指定主键索引,可以在创建后再添加。
alter table aaa add primary key (id);
2.查询
1. desc 表名可以查看表结构,但缺点是不能显示索引的名字。
+-------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO |
PRI | NULL | auto_increment |
| name | varchar(32) | NO | | | |
+-------+------------------+------+-----+---------+----------------+
2. show index(es) from 表名
\G; \G格式好看 (但是\G在这里不起作用)
index和index(es)的作用是相同的。
3.show keys from aaa;
根据之前的上一篇文章的进度,进行优化
给主键添加索引
alter table emp add primary key (empno);
然后再继续执行
select * from emp where empno=232323;
会看到速度非常的快。
为什么创建了索引之后,查询的速度就变快了呢?
因为原先检索是从第一条开
一个一个进行检索,然后下一个下一个。。。
加了索引的是使用
二叉树算法进行查询。
检索次数为log2^n次方
普通索引
一般来说,普通索引的创建,是先创建表,然后在创建普通索引。