create index index_name on table_name(attributes)
一个表只能有一个聚集索引,但是可以有多个非聚集索引
主索引一定是聚集索引,但是聚集索引不一定是主索引
(但是聚集索引其实又称作主索引,聚集索引的搜索码常常为主键,但也可以不是)
稠密索引:每一项都有索引,搜索码相同时,顺序地记录在第一条记录之后
稀疏索引:只有其中一些项有索引,只有索引是聚集索引才能用稀疏索引,从索引项指向的记录开始沿着文件中的指针查找直至找到所需记录
1.在使用复合索引时要注意最左前缀的原则,以防索引失效(如建立索引时为(A,B,C),最左前缀索引为A)
2.建立适当的索引可以节省开销
3.强制使用索引开销会增大很多,对于较小的表不建立索引反而查询会更快
4.当索引上存在函数计算时,索引就不起作用了,可转换为等价的实现方式
5.般在使用多表查询的时候应该避免使用嵌套查询,会增加连接,排序等开销,但在实际应用中有时会出现两种情况性能相同甚至是嵌套查询性能更优的情况
6.比较where查询条件中复合查询条件OR和等价转换为union的效率,结果显示含有union的语句执行效率更低
从执行计划来看,第一个语句因为where条件中引入了OR而使得索引不再起作用,但是后一个查询步骤繁多,虽然使用索引,但是却还是进行了全表扫描,效率反而更低
7.from增加多余的表会增加开销