目录
1、创建不同引擎的表
# 创建一个MyISAM引擎的表
create table my_test(
id int primary key auto_increment,
name varchar(20)
) engine = MyISAM;
# 创建一个Innodb引擎的表
不写引擎类型默认innodb
create table in_test(
id int primary key auto_increment,
name varchar(20)
);
2、添加索引
alter table table_name add index index_name(columnName);
l联合索引:alter table table_name add index index_name(columnName,column2);
3、删除索引
drop index index_name on table_name
4、查看索引
查看某张表的索引:show index from my_test;
5、explain 详解
在sql语句前加上explain关键字可以查看优化器执行sql语句的过程
创建3张表student,course,student_course
一、分析查询结果
expain出来的信息有10列,分别是id、select_type、table、type、possible_keys、key、key_len、ref、rows、Extra
每列分析
id:选择标识符
id列的编号是 select 的序列号,sql语句中有几个 select 就有几个id,比如下图中,执行sql语句要去3张表中查询,所以有3个id
Id相同,执行顺序由上至下
Id不同,id值越大,优先级越高,越先被执行(由图可知,先查询student表)
id为NULL最后执行
select_type:表示查询的类型
table:输出结果集的表
partitions:匹配的分区
type:表示表的连接类型
possible_keys:表示查询时,可能使用的索引
key:表示实际使用的索引
key_len:索引字段的长度
ref:列与索引的比较
rows:扫描出的行数(估算的行数)
filtered:按表条件过滤的行百分比
Extra:执行情况的描述和说明