一、简介、
1、简介
#是什么: 索引是帮助MySQL高效获取数据的数据结构 #注意:索引是数据结构() 可以简单的理解为排好序的快速查找数据结构 #索引原理 通过不断地缩小想要获取数据的范围来筛选出最终想要的结果,同时把随机的事件变成顺序的事件 #索引优缺点 优点:可以快速检索,减少I/O次数,加快检索速度;根据索引分组和排序,可以加快分组和排序 缺点:索引本身也是表,因此会占用存储空间,一般来说,索引表占用的空间的数据表的1.5倍;索引表的维护和创建需要时间成本,这个成本随着数据量增大而增大;构建索引会降低数据表的修改操作(删除,添加,修改)的效率,因为在修改数据表的同时还需要修改索引表;
2、哪些情况适合建索引
1、主键自动建立唯一索引 2、频繁作为查询条件的字段应该创建索引 3、查询中与其他表关联的字段,外键关系简历索引 4、频繁更新的字段不适合建立索引 5、where条件里用不到的字段不要建立索引 6、查询中排序的字段,排序字段若通过索引去访问,将大大提高排序速度 7、查询中统计或者分组字段
3、基本语法
#创建索引 1、在创建表的时候添加索引 CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL, INDEX [indexName] (username(length)) 2、表创建以后添加索引 ALTER TABLE my_table ADD [UNIQUE] INDEX index_name(column_name); 或者 CREATE INDEX index_name ON my_table(column_name) #删除索引 drop index [indexname] on my_table #查看索引 show index from my_tableG