索引增加插入时间
但是插入情况比查少
值得用
必须索引 默认 创建主键插入主键自动生成索引
哈希索引 引擎
全文索引 表中的列都创建一个索引
索引作为主键的时候。唯一约束。
主键 约束和索引能力
联合索引 第一列放在最前面。
(name,email) 能单独查name不能但查email。
主键索引
唯一索引
普通索引
联合索引(多列组合),顺序(最左前缀匹配)。
普通的列组合 index 索引名称 (列1,列2)
主键联合索引 primary key(列1,列2)
唯一联合查询 unique key (列1,列2)
在已经存在的表中添加索引:
alter table tablename add primary key()
alter table tablename add unique key()
添加普通索引:
create index 索引名称 on tablename(列1,列2)
添加一个唯一索引:
create unique index 索引名称 on tablename(列1,列2)
删除索引:
drop index 索引名称 on tablename
删除主键索引:
drop table tablename ?
删除唯一索引:
drop unique index 索引名称 on tablename
<如何修改索引名称,删除后添加。
索引根据搜索引擎分类:
不设置索引的。
从上往下依次查找(慢,效率低)
设置索引
会生成额外的一个索引文件(数据文件)(快)
hash 哈希索引:memary引擎 基于内存的搜索引擎
索引表(根据索引生成哈希值,并有记录当前列在表中,这个hash存储顺序跟我们的表的顺序不一致)单条语句查询特别快
btree 索引:(二叉树算法,树状图,左面放比上面的小的,右面放比上面大的)
觉大多数都支持。
查找速度相对快。
二个名称的概念
覆盖索引
select name from tablename where name='张三'
直接在索引找对应值张三,不用在表里查。
select name,age from tablename where name='张三'
相反例子
where一一对应
索引列
索引合并
索引结合使用。
name,email,phonenum
select * from tablename where name='张三 and emile='某个值'
多个组合and一起。
联合索引比他效率高。
联合索引比合并索引效率高。
创建索引要了解的知识:
1.创建一个索引,提高了查找效率但是牺牲了增删改的效率,
2.也会加大磁盘空间的开销。
3.设置最短的索引。
text wreigfosdgljngkeefdgkojafdnkglf
对于很长的索引,截取设置。
create index indecname on tablename(列(16)) 截取一部分设置索引
4.命中索引