索引是在数据库表的字段上添加的,是为了提高查询效率存在的一种机制.
一个字段可以添加索引,也可以多个字段联合起来添加索引.
索引相当于一本书的目录,是为了缩小扫描范围而存在的一种机制.
mysql在查询方面主要就是两种方式:
第一种方式:全表扫描
第二种方式:根据索引检索
在mysql数据库当中索引也需要排序,并且这个索引的排序和TreeSet数据结构相同,在mysql中索引是一个B-Tree数据结构.
在任何数据库当中主键上都会自动添加索引对象,如果一个字段上有unique约束的话,也会自动创建索引对象.
在任何数据库当中,任何一张表的任何一条记录在硬盘存储上都有一个硬盘的物理存储编号.
在以下条件下,我们会考虑给字段添加索引
条件1:数据量庞大
条件2:该字段经常出现在where的后面,以条件的形式存在,这个字段总是被扫描
条件3:该字段很少的DML(insert delete update)操作(因为DML之后,索引需要重新排序)
建议不要随意添加索引,因为所有也是需要维护的,太多的话反而会降低系统的性能.
建议通过主键查询,建议通过unique约束的字段进行查询,效率是比较高的.