你真的了解SQL的索引吗?
其实对于非专业的数据库操作人员来讲,例如软件开发人员,在很大程度上都搞不清楚数据库索引的一些基本知识,有些是知其一不知其二,或者是知其然不知其所以然。造成这种情况的主要原因我觉的是行业原因,有很多公司都有自己的DBA团队,他们会帮助你优化SQL,开发人员即使不懂优化问题也不大,所以开发人员对这方面也就不会下太多功夫去了解SQL优化,但如果公司没有这样的DBA呢,就只能靠程序员自己了。 最近突然想起前一阵和一朋友的聊天,当时他问我的问题是一个非常普通的问题:说说SQL聚集索引和非聚集索引的区别。
大家可能认为这个问题难度不大,认为太熟悉了,也许不会感兴趣,但你真能说清楚吗?其实要想说明白这两者的差别也不是三两句就说的清的,那天我也是觉的这问题太泛了,就随便说了其中的两个区别:
?聚集索引一个表只能有一个,而非聚集索引一个表可以存在多个,这个跟没问题没差别,一般人都知道。
?聚集索引存储记录是物理上连续存在,而非聚集索引是逻辑上的连续,物理存储并不连续,这个大家也都知道。
上面的两点从大的方面讲都是讲的通的,后面我们继续探讨,举一个实际点的例子,一个学生表student,里面是学生号id,学生姓名,学生所在城市ID,学生成绩(总分)。
?问:如果想按姓名查询,如何做优化?
?答:在姓名字段上建立索引。
?问:建立什么类型的索引?
?答:建立非聚集索引。
?问:为什么?
?答:一般有范围查询的需求,可以考虑在此字段上创建聚集索引。
?问:学分有重复性,在学分字段上创建聚集索引能行吗? ....沉思,不能创建吗?之前的项目好像真这样做过
?答:应该可以吧。
?问:聚集索引的约束是什么?
?答:唯一性啊?
?问:既然是唯一性,那么学分字段上还能创建聚集索引吗?....再次沉思,应该可以啊,但索引的约束又怎么说呢?
?答:应该可以的,以前用过。
我自认为是对数据库索引知识有一定研究的,但可能是有两年没实际接触SQL的原因,一时还真想不出具有说服力的解释,朋友们看到这能解答我的问题吗?
其实上面的我们需要搞清楚以下几个问题:
第一:聚集索引的约束是唯一性,是否要求字段也是唯一的呢?
分析:如果认为是的朋友,可能是受系统默认设置的影响,一般我们指定一个表的主键,如果这个表之前没有聚集索引,同时建立主键时候没有强制指定使用非聚集索引,SQL会默认在此字段上创建一个聚集索引,而主键都是唯一的,所以理所当然的认为创建聚集索引的字段也需要唯一。
sql索引类型_计算机软件及应用_IT/计算机_专业资料。sql索引类型,资源免费,大家分享!sql 索引类型 唯一索引:唯一索引不允许两行具有相同的索引值 主键索引:为表定义...
正是由它管理文件系统并记录对文件的一切操作,系统才得以正常运行;同理,作为管理系统级的SQL SERVER,也有这样一张类似FAT的表存在,它就是索引分布映像页:IAM(...
sql索引好处_IT/计算机_专业资料。索引好处索引对性能的作用 如何让你的SQL运行得更快 一、使用索引的优点: 1、通过唯一性索引(unique)可确保数据的唯一性 2、加...
SQL索引技巧_IT/计算机_专业资料。或许你以学会如何对数据进行索引,但要做好,还需要不懈努力。。。在SQL Server中,为了查询性能的优化,有时我们就需要对数据表通过...
SQL索引概念_工学_高等教育_教育专区。SQL索引概念一、索引的概念 索引就是加快检索表中数据的方法。数据库的索引类似于书籍的索引。在书籍中, 索引允许用户不必翻...
SQL中的索引_计算机软件及应用_IT/计算机_专业资料。索引 1.什么是索引? 索引是与表或视图关联的独立的、物理的数据库结构,可以加快从表或视图中检检索行的速度。...
sql 索引的作用(超详细)_计算机软件及应用_IT/计算机_专业资料。详细讲解sql 索引的作用,聚集索引,非聚集索引。以及什么情况下用聚集索引,什么情况下用非聚集索引。...
SQL 创建索引的作用以及如何创建索引 SQL 创建索引的作用 一、使用索引的优点: 1、通过唯一性索引(unique)可确保数据的唯一性 2、加快数据的检索速度 3、加快表...
为了给一个表建立索引, 启动任务栏 SQL Sever 程序组中的 ISQL/w 程序。 进入查询窗口后, 输入下面的语句: CREATE INDEX mycolumn_index ON mytable (myclumn...
SQL 优化 索引 优化-索引微软的 SQL SERVER 提供了两种索引:聚集索引(clustered index,也称聚类索引,簇集索引) 和非聚集索引(nonclustered index,也称非聚类索引,...
我要评论