前言情况说明: 数据库中往往存储了大量的数据,普通查询默认的方法是调用顺序全盘扫描。
例如有这样一个查询 :
select * from user_info where id = 1000
如果没有索引,就会遍历整个 user_info 表,直到找完 id = 1000 的这些数据为止;为了提高查询的效率,可以使用 “ 索引 ”;
1:什么是索引?
索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可以快速访问数据库表中的特定信息;
索引就是恰当的排序,经过某种算法优化,使查找次数要比不使用索引少的多得多;
2:索引的缺点:
1:索引数据可能要占用大量的存储空间,因此并非所有数据都适合索引;(这里可以理解为索引就是牺牲了存储空间 来 换取 查询速度)【还有一点就是,在建立索引之前,你必须对该表的数据结构有深刻的理解】
2:索引改善了检索操作的性能,但降低了数据插入,修改和删除的性能
3:创建索引:
语法: create index 索引名 on 表名(列名); (索引名称尽量取的见名知意--好定位)
4:查看索引:
语法: .indices (注意前面的“点”)
5:删除索引:
语法: drop index 索引名;
6:创建联合索引
语法:create index 表名 on persons(列名1,列名2);
或者使用: ALTER TABLE `table_name` ADD INDEX (`col1`,`col2`,`col3`);
7:创建索引的注意事项:
a:尽量建立在作为“主键”的列上;
b:在经常需要排序的列上创建索引;
c:在经常使用作为 where 条件 的列上创建索引,加快条件的判断速度;
d:注意索引的创建并不影响查询结果,只会提高查询速度;