索引:
可通过 SYSCAT.INDEXES JOIN SYSCAT.INDEXCOLUSE来查询
索引的字段有升序ASC和降序DESC,分别表示为SYSCAT.INDEXES的COLNAMES中索引字段前的“+”和“-”。
SYSCAT.INDEXES中的UNIQUERULE可能为:D/U/P,分别代表:
普通索引(Duplicates Allowed)
唯一索引(Unique)
主键索引(Primary Index)
按类型索引可分为聚簇/非聚簇索引。
聚簇索引中,索引树的叶级页包含实际的数据,即记录的索引顺序与物理顺序相同,理论速度比非聚簇索引快。
提升了SQL中包含范围谓词查询语句的执行效率。如:Between...and, <, <=, >, >=。
提升了使用Group by或Order by的查询语句的效率。
每个表只能有一个聚簇索引。
非聚簇索引中,记录标识存储在数据结构中,叶级页指向标中的记录,即记录的物理顺序与逻辑顺序没有必然的联系。
----------------------------------------------------------------------------------------------------------------------------------------------------------------
普通索引
普通索引的唯一任务是加快对数据的访问速度,因此,应该只为那些最经常出现在查询条件(WHERE column=)或者排序条件(ORDERBY column)中的数据列创建索引
3.主键
必须为主键字段创建一个索引,这个Mysql索引就是所谓的“主索引”。主索引与唯一索引的唯一区别是:前者在定义时使用的关键字是PRIMARY而不是UNIQUE
4.唯一性索引
如果确定某个数据列只包含彼此各不相同的值,在为这个数据列创建索引的时候,就应该用关键字UNIQUE把它定义为一个唯一索引,Mysql会在有新纪录插入数据表时,自动检查新纪录的这个字段的值是否已经在某个记录的这个字段里出现过了。如果是,mysql将拒绝插入那条新纪录。也就是说,唯一索引可以保证数据记录的唯一性。事实上,在许多场合,人们创建唯一索引的目的往往不是为了提高访问速度,而只是为了避免数据出现重复
5.索引的优点
5.1.可以通过建立唯一索引或者主键索引,保证数据库表中每一行数据的唯一性
5.2.建立索引可以大大提高检索的数据,以及减少表的检索行数
5.3.在表连接的连接条件,可以加速表与表直接的相连
5.4.在分组和排序字句进行数据检索,可以减少查询时间中分组和排序时所消耗的时间(数据库的记录会重新排序)
5.5.建立索引,在查询中使用索引,可以提高性能。
6.索引的缺点
6.1.创建索引和维护索引,会耗费时间,随着数据量的增加而增加
6.2.索引文件会占用物理空间,除了数据表需要占用物理空间之外,每一个索引还会占用一定的物理空间
6.3.当对表的数据进行INSERT,UPDATE,DELETE的时候,索引也要动态的维护,这样就会降低数据的维护速度,(建立索引会占用磁盘空间的索引文件)。