SQL Server2000 索引结构及其使用
(完整word版)SQLServer2000基础教程

安装
新建数据库
也能够使用导游来创立数据库:
表设计Class:
主键拘束
Unique 拘束新加一个索引:
Check 拘束
默认值、用户定义的数据种类
新建 Student 表:
外键
关系图
在关系图中设计表:增添 Age 列:
增添 Teacher 表:
增添表记列:
增添主外键关系:
视图设计
储存过程设计
在查问剖析器中履行储存过程:
备份数据库或许用导游进行备份:
复原数据库
经过拷贝MDF 和 LDF 文件的方式备份前需要分别数据库,不然提示:
数据库保护计划
生成数据库构造脚本
删除数据库后,可经过履行导出的SQL 脚原来重修数据库:
SaleManagement 实例操练
1、创立数据库
2、创立数据库表
Product 表:
创立其余表3、关系图:
4、输入数据Dept:
Employee:
Product:
SaleForm:SaleFormDetail :
5、创立查问视图
按部门查察销售业绩:
按产品查察销售额:
6、创立储存过程。
实验一 SQL server 2000中表和索引的创建

实验一SQL server 2000中表和索引的创建实验步骤写在作业本上:1、用SQL命令创建“学生成绩”数据库,其中包括student表、grade表和course 表。
步骤:方法一,打开企业管理器,右击“数据库”,在弹出的快捷菜单中选择“新建数据库”,这时将弹出“数据库属性”对话框,单击“常规”选项卡,在“名称”文本框中输入:学生成绩,单击“数据文件”和“事务日志”选项卡,看看其中的内容,然后单击“确定”按钮。
方法二,打开查询分析器,选择“WINDOWS身份验证”,在查询编辑器框中输入:create database 学生成绩。
2、student表中包含五个字段:sno ,sname ,csrq(出生日期),sex ,deptno,要求sno 为1,2,3,4……,性别字段默认为男并只能输入男和女两种数据。
步骤:方法一:在企业管理器中,右击“表”,在弹出的快捷菜单中选择“新建表”,然后定义表的结构,如下图所示。
然后右击,在弹出的快捷菜单中选择“check约束”,将弹出“属性”对话框,单击“新建”按钮,在约束表达式中输入:sex= '男' or sex= '女'。
约束名是计算机默认的,也可以自己设置。
方法二:打开查询分析器,当前数据库中选择“学生成绩”数据库,然后输入SQL命令:3、course表中包含三个字段:cno,cname,cpno(先修课号),credit。
cname必须唯一。
步骤:方法一:省略方法二:4、grade表中包含三个字段:cno,sno,grade,(cno,sno)为主键,成绩字段必须是0-100分,选修的课程必须是学校已经开设了的课程,选课的学生必须是本校在校学生。
步骤:方法一:省略方法二:5、修改student表的结构,将sex字段默认为“男”。
步骤:方法一:在企业管理器中,选中student表,右击,在弹出的快捷菜单中选择“设计表”,然后选中sex字段,在“默认值”对话框中输入:’男’。
SQL server2000的使用 索引

例如:为学生基本表中的姓名创建索引。 CREATE INDEX 姓名_INDEX ON 学生QL语句删除索引 1.使用SQL语句删除索引 DROP INDEX 表名.索引名 表名. 例如:删除学生基本表中的姓名索引。 DROP INDEX 学生基本表.姓名_INDEX 学生基本表.姓名_INDEX 2.使用企业管理器删除索引 2.使用企业管理器删除索引 具体看演示。
索引
一、管理索引 在SQL 中,管理索引有三种方法:一是使用创建索 引向导;二是使用企业管理器;三是使用SQL语 引向导;二是使用企业管理器;三是使用SQL语 句。 1.使用创建索引向导创建一个新的索引 1.使用创建索引向导创建一个新的索引 使用运行向导来完成. 使用运行向导来完成. 2.使用企业管理器管理索引 2.使用企业管理器管理索引 在企业管理器中,不仅可以建立索引, 在企业管理器中,不仅可以建立索引,而且还可以更好 地管理索引. 地管理索引.
索引
索引概念
索引是辅助数据,它的作用只是帮助用户在 数据库中快速地定位要查询的数据行。 索引是由索引项和索引指针两部分组成。 其中:索引项是指要查找的关键字段,例如 学号、姓名等,索引项按照一定的逻辑关 系排序;索引指针是索引表中指向对应数 据项的地址。 索引的主要作用:是提高和改善数据库系统 查询处理能力,加快信息检索速度。因为 索引是数据库中基本表的辅助数据,所以 一张表上可以没有索引,也可以建立一个 索引或者多个索引。
例:删除刚刚创建的学生基本表_INDEX_姓名 删除刚刚创建的学生基本表_INDEX_姓名 选择所有任务—管理索引来完成. 选择所有任务—管理索引来完成. 3.使用SQL语句完成创建 3.使用SQL语句完成创建 CREATE [UNIQUE] [CLUSTERED|NONCLUSTERED] INDEX 索引名 ON 表名(列[ASC|DESC]) 表名(列[ASC|DESC]) 其中: [UNIQUE]表示创建唯一索引。 [UNIQUE]表示创建唯一索引。 [CLUSTERED|NONCLUSTERED]指定创建 [CLUSTERED|NONCLUSTERED]指定创建 聚集索引或非聚集索引。
SQL Server 2000索引结构及使用方法

SQL Server 2000索引结构及使用方法一、深入浅出理解索引结构实际上,您可以把索引理解为一种特殊的目录。
微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引、簇集索引)和非聚集索引(nonclustered index,也称非聚类索引、非簇集索引)。
下面,我们举例来说明一下聚集索引和非聚集索引的区别:其实,我们的汉语字典的正文本身就是一个聚集索引。
比如,我们要查“安”字,就会很自然地翻开字典的前几页,因为“安”的拼音是“an”,而按照拼音排序汉字的字典是以英文字母“a”开头并以“z”结尾的,那么“安”字就自然地排在字典的前部。
如果您翻完了所有以“a”开头的部分仍然找不到这个字,那么就说明您的字典中没有这个字;同样的,如果查“张”字,那您也会将您的字典翻到最后部分,因为“张”的拼音是“zhang”。
也就是说,字典的正文部分本身就是一个目录,您不需要再去查其他目录来找到您需要找的内容。
我们把这种正文内容本身就是一种按照一定规则排列的目录称为“聚集索引”。
如果您认识某个字,您可以快速地从自动中查到这个字。
但您也可能会遇到您不认识的字,不知道它的发音,这时候,您就不能按照刚才的方法找到您要查的字,而需要去根据“偏旁部首”查到您要找的字,然后根据这个字后的页码直接翻到某页来找到您要找的字。
但您结合“部首目录”和“检字表”而查到的字的排序并不是真正的正文的排序方法,比如您查“张”字,我们可以看到在查部首之后的检字表中“张”的页码是672页,检字表中“张”的上面是“驰”字,但页码却是63页,“张”的下面是“弩”字,页面是390页。
很显然,这些字并不是真正的分别位于“张”字的上下方,现在您看到的连续的“驰、张、弩”三字实际上就是他们在非聚集索引中的排序,是字典正文中的字在非聚集索引中的映射。
我们可以通过这种方式来找到您所需要的字,但它需要两个过程,先找到目录中的结果,然后再翻到您所需要的页码。
SQL_Server_2000命令语法精选

SQL Server 2000常用命令,语法使用方法(一)SQL Server 2000常用命令,语法使用方法(1) 数据记录筛选:sql="select * from 数据表 where 字段名=字段值 order by 字段名 [desc]"sql="select * from 数据表 where 字段名 like '%字段值%' order by 字段名[desc]"sql="select top 10 * from 数据表 where 字段名 order by 字段名 [desc]" sql="select * from 数据表 where 字段名 in ('值1','值2','值3')"sql="select * from 数据表 where 字段名 between 值1 and 值2"(2) 更新数据记录:sql="update 数据表 set 字段名=字段值 where 条件表达式"sql="update 数据表 set 字段1=值1,字段2=值2 …… 字段n=值n where 条件表达式"(3) 删除数据记录:sql="delete from 数据表 where 条件表达式"sql="delete from 数据表" (将数据表所有记录删除)(4) 添加数据记录:sql="insert into 数据表 (字段1,字段2,字段3 …) values (值1,值2,值3 …)"sql="insert into 目标数据表 select * from 源数据表" (把源数据表的记录添加到目标数据表)(5) 数据记录统计函数:AVG(字段名) 得出一个表格栏平均值COUNT(*|字段名) 对数据行数的统计或对某一栏有值的数据行数统计MAX(字段名) 取得一个表格栏最大的值MIN(字段名) 取得一个表格栏最小的值SUM(字段名) 把数据栏的值相加引用以上函数的方法:sql="select sum(字段名) as 别名 from 数据表 where 条件表达式"set rs=conn.excute(sql)用 rs("别名") 获取统的计值,其它函数运用同上。
SQLSERVER2000教程

SQLSERVER2000教程SQL Server 2000是微软公司开发的关系型数据库管理系统(RDBMS),是SQL Server系列的一部分。
它提供了强大的数据管理和处理功能,可以用于构建和管理大型数据库系统。
SQL Server 2000教程将引导您了解SQL Server 2000的基本概念和功能,以及如何使用SQL Server 2000来管理和操作数据。
以下是一个简单的SQL Server 2000教程。
第一部分:入门1. 介绍SQL Server 2000:讲解SQL Server 2000的基本概念,包括数据库和表的概念。
2. 安装SQL Server 2000:介绍如何安装SQL Server 2000并配置数据库服务器。
3.创建数据库:讲解如何创建新的数据库以及添加表。
第二部分:基本操作1.创建表:介绍如何创建新的表,包括定义列和设置约束。
2.插入数据:讲解如何向表中插入数据。
3.查询数据:介绍如何使用SELECT语句从表中检索数据。
4.更新数据:讲解如何使用UPDATE语句更新现有数据。
5.删除数据:介绍如何使用DELETE语句删除现有数据。
第三部分:高级功能1.查询语句:讲解如何使用聚合函数、子查询和连接来进行复杂的查询。
2.索引:介绍如何创建索引以提高查询性能。
3.事务:讲解如何使用事务来确保数据的完整性和一致性。
4.触发器:介绍如何创建触发器以响应数据库中的事件。
5.存储过程:讲解如何创建和使用存储过程来执行常用的数据库操作。
第四部分:管理和维护1.用户管理:介绍如何创建和管理用户以及设置用户权限。
2.备份和恢复:讲解如何备份和恢复数据库以及如何进行数据库恢复。
3.性能优化:介绍如何识别和解决数据库性能问题。
4. 跨服务器操作:讲解如何在多个SQL Server 2000实例之间共享数据。
5. 定时任务:介绍如何使用作业和调度器来定期执行一些SQLServer 2000任务。
sqlserver 索引用法

标题:深入了解SQL Server索引的用法摘要:本文将深入探讨SQL Server索引的用法,包括索引的概念、创建、优化和使用技巧,帮助读者更好地利用索引提高数据库的性能。
一、索引的概念1. 什么是索引在SQL Server中,索引是一种特殊的数据结构,用于快速定位和访问数据库表中的数据。
通过索引,可以加快数据检索的速度,提高查询性能。
2. 索引的作用索引可以帮助数据库引擎快速定位到符合查询条件的数据,减少数据库的扫描和比对操作,从而提高数据检索的效率。
二、创建索引1. 创建索引的语法在SQL Server中,可以通过CREATE INDEX语句来创建索引,语法如下:```CREATE INDEX index_nameON table_name (column1, column2, ...);```2. 索引的类型SQL Server支持多种类型的索引,包括主键索引、唯一索引、聚簇索引和非聚簇索引等。
不同类型的索引适用于不同的场景,需要根据实际情况选择合适的索引类型进行创建。
三、优化索引1. 索引的设计原则在设计索引时,需要考虑到索引的覆盖性、选择性和唯一性等因素,以及索引对于 INSERT、UPDATE 和 DELETE 操作的影响。
合理的索引设计可以有效提高数据库的性能。
2. 索引的优化策略为了提高索引的性能,可以采取一些优化策略,如合并重叠索引、删除不必要的索引、定期重建索引和使用索引查找替代检索等方法。
四、使用技巧1. 如何使用索引在编写SQL查询语句时,可以通过使用EXPL本人N PLAN或者执行计划等工具来帮助分析查询语句的执行计划,以及确定是否使用了合适的索引。
2. 注意事项在使用索引时,需要注意索引的命中率、页面填充因子、索引维护等问题,以及定期对索引进行监控和优化。
五、总结通过本文的介绍,读者应该对SQL Server索引的概念、创建、优化和使用技巧有了一定的了解。
在实际应用中,需要根据具体的业务需求和数据库环境,选择合适的索引策略,以提高数据库的性能和稳定性。
用SQLServer2000索引视图提高性能(下)

用SQLServer2000索引视图提高性能(下) 使用“索引微调向导” “索引微调向导”除建议使用基表的索引之外,还建议使用索引视图。
使用该向导可提高管理员确定索引和索引视图相结合的能力,从而优化针对数据库执行的典型混合查询的性能。
由于“索引微调向导”强制使用所有必需的SET 选项(以确保结果集的正确性),其索引视图将会成功创建。
不过,如果您的应用程序的选项没有按照要求设置,可能无法利用这些视图。
对那些参与索引视图定义的表执行的插入、更新或删除操作可能会失败。
维护索引视图SQL Server 自动维护索引视图,这与维护任何其它索引的情况类似。
对于普通索引而言,每个索引都直接连接到单个表。
通过对基础表执行每个INSERT、UPDATE 或DELETE 操作,索引相应地进行了更新,以便使存储在该索引中的值始终与表一致。
索引视图的维护与此类似。
不过,如果视图引用了多个表,则对这些表中的任何一个进行更新都需要更新索引视图。
与普通索引不同的是,对任何一个参与的表执行一次行插入操作都可能导致在索引视图中进行多次行插入操作。
更新和删除操作的情况也是如此。
因此,较之于维护表的索引,维护索引视图的代价更为高昂。
在SQL Server 2000 中,某些视图可以更新。
如果某个视图可以更新,则使用INSERT、UPDA TE 和DELETE 语句可通过该视图直接修改根本基表。
为某个视图创建索引并不会妨碍该视图的更新。
有关可更新视图的详细信息,请参阅关于SQL Server 2000 的“SQL Server 联机图书”中的“通过视图修改数据(英文)”。
据库中。
SQL Server 自动维护视图。
因此,对定义视图所据的基表的任何更改都可能引起视图索引的一处或多处更改,从而导致维护开销的增加。
一个视图获得的净性能提高就是视图提供的查询执行节约总计与存储和维护该视图耗费的成本之间的差。
估计视图将占用的所需存储空间要相对简单一些。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、深入浅出理解索引结构实际上,您可以把索引理解为一种特殊的目录。
微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引、簇集索引)和非聚集索引(nonclustered index,也称非聚类索引、非簇集索引)。
下面,我们举例来说明一下聚集索引和非聚集索引的区别:其实,我们的汉语字典的正文本身就是一个聚集索引。
比如,我们要查“安”字,就会很自然地翻开字典的前几页,因为“安”的拼音是“an”,而按照拼音排序汉字的字典是以英文字母“a”开头并以“z”结尾的,那么“安”字就自然地排在字典的前部。
如果您翻完了所有以“a”开头的部分仍然找不到这个字,那么就说明您的字典中没有这个字;同样的,如果查“张”字,那您也会将您的字典翻到最后部分,因为“张”的拼音是“zhang”。
也就是说,字典的正文部分本身就是一个目录,您不需要再去查其他目录来找到您需要找的内容。
我们把这种正文内容本身就是一种按照一定规则排列的目录称为“聚集索引”。
如果您认识某个字,您可以快速地从自动中查到这个字。
但您也可能会遇到您不认识的字,不知道它的发音,这时候,您就不能按照刚才的方法找到您要查的字,而需要去根据“偏旁部首”查到您要找的字,然后根据这个字后的页码直接翻到某页来找到您要找的字。
但您结合“部首目录”和“检字表”而查到的字的排序并不是真正的正文的排序方法,比如您查“张”字,我们可以看到在查部首之后的检字表中“张”的页码是672页,检字表中“张”的上面是“驰”字,但页码却是63页,“张”的下面是“弩”字,页面是390页。
很显然,这些字并不是真正的分别位于“张”字的上下方,现在您看到的连续的“驰、张、弩”三字实际上就是他们在非聚集索引中的排序,是字典正文中的字在非聚集索引中的映射。
我们可以通过这种方式来找到您所需要的字,但它需要两个过程,先找到目录中的结果,然后再翻到您所需要的页码。
我们把这种目录纯粹是目录,正文纯粹是正文的排序方式称为“非聚集索引”。
通过以上例子,我们可以理解到什么是“聚集索引”和“非聚集索引”。
进一步引申一下,我们可以很容易的理解:每个表只能有一个聚集索引,因为目录只能按照一种方法进行排序。
二、何时使用聚集索引或非聚集索引事实上,我们可以通过前面聚集索引和非聚集索引的定义的例子来理解上表。
如:返回某范围内的数据一项。
比如您的某个表有一个时间列,恰好您把聚合索引建立在了该列,这时您查询2004年1月1日至2004年10月1日之间的全部数据时,这个速度就将是很快的,因为您的这本字典正文是按日期进行排序的,聚类索引只需要找到要检索的所有数据中的开头和结尾数据即可;而不像非聚集索引,必须先查到目录中查到每一项数据对应的页码,然后再根据页码查到具体内容。
三、结合实际,谈索引使用的误区理论的目的是应用。
虽然我们刚才列出了何时应使用聚集索引或非聚集索引,但在实践中以上规则却很容易被忽视或不能根据实际情况进行综合分析。
下面我们将根据在实践中遇到的实际问题来谈一下索引使用的误区,以便于大家掌握索引建立的方法。
1、主键就是聚集索引这种想法笔者认为是极端错误的,是对聚集索引的一种浪费。
虽然SQL SERVER默认是在主键上建立聚集索引的。
通常,我们会在每个表中都建立一个ID列,以区分每条数据,并且这个ID 列是自动增大的,步长一般为1。
我们的这个办公自动化的实例中的列Gid就是如此。
此时,如果我们将这个列设为主键,SQL SERVER会将此列默认为聚集索引。
这样做有好处,就是可以让您的数据在数据库中按照ID进行物理排序,但笔者认为这样做意义不大。
显而易见,聚集索引的优势是很明显的,而每个表中只能有一个聚集索引的规则,这使得聚集索引变得更加珍贵。
从我们前面谈到的聚集索引的定义我们可以看出,使用聚集索引的最大好处就是能够根据查询要求,迅速缩小查询范围,避免全表扫描。
在实际应用中,因为ID号是自动生成的,我们并不知道每条记录的ID号,所以我们很难在实践中用ID号来进行查询。
这就使让ID号这个主键作为聚集索引成为一种资源浪费。
其次,让每个ID号都不同的字段作为聚集索引也不符合“大数目的不同值情况下不应建立聚合索引”规则;当然,这种情况只是针对用户经常修改记录内容,特别是索引项的时候会负作用,但对于查询速度并没有影响。
在办公自动化系统中,无论是系统首页显示的需要用户签收的文件、会议还是用户进行文件查询等任何情况下进行数据查询都离不开字段的是“日期”还有用户本身的“用户名”。
通常,办公自动化的首页会显示每个用户尚未签收的文件或会议。
虽然我们的where语句可以仅仅限制当前用户尚未签收的情况,但如果您的系统已建立了很长时间,并且数据量很大,那么,每次每个用户打开首页的时候都进行一次全表扫描,这样做意义是不大的,绝大多数的用户1个月前的文件都已经浏览过了,这样做只能徒增数据库的开销而已。
事实上,我们完全可以让用户打开系统首页时,数据库仅仅查询这个用户近3个月来未阅览的文件,通过“日期”这个字段来限制表扫描,提高查询速度。
如果您的办公自动化系统已经建立的2年,那么您的首页显示速度理论上将是原来速度8倍,甚至更快。
在这里之所以提到“理论上”三字,是因为如果您的聚集索引还是盲目地建在ID这个主键上时,您的查询速度是没有这么高的,即使您在“日期”这个字段上建立的索引(非聚合索引)。
下面我们就来看一下在1000万条数据量的情况下各种查询的速度表现(3个月内的数据为25万条):(1)仅在主键上建立聚集索引,并且不划分时间段:Select gid,fariqi,neibuyonghu,title from tgongwen用时:128470毫秒(即:128秒)(2)在主键上建立聚集索引,在fariq上建立非聚集索引:select gid,fariqi,neibuyonghu,title from Tgongwenwhere fariqi> dateadd(day,-90,getdate())用时:53763毫秒(54秒)(3)将聚合索引建立在日期列(fariqi)上:select gid,fariqi,neibuyonghu,title from Tgongwenwhere fariqi> dateadd(day,-90,getdate())用时:2423毫秒(2秒)虽然每条语句提取出来的都是25万条数据,各种情况的差异却是巨大的,特别是将聚集索引建立在日期列时的差异。
事实上,如果您的数据库真的有1000万容量的话,把主键建立在ID列上,就像以上的第1、2种情况,在网页上的表现就是超时,根本就无法显示。
这也是我摒弃ID列作为聚集索引的一个最重要的因素。
得出以上速度的方法是:在各个select语句前加:declare @d datetimeset @d=getdate()并在select语句后加:select [语句执行花费时间(毫秒)]=datediff(ms,@d,getdate())2、只要建立索引就能显著提高查询速度事实上,我们可以发现上面的例子中,第2、3条语句完全相同,且建立索引的字段也相同;不同的仅是前者在fariqi字段上建立的是非聚合索引,后者在此字段上建立的是聚合索引,但查询速度却有着天壤之别。
所以,并非是在任何字段上简单地建立索引就能提高查询速度。
从建表的语句中,我们可以看到这个有着1000万数据的表中fariqi字段有5003个不同记录。
在此字段上建立聚合索引是再合适不过了。
在现实中,我们每天都会发几个文件,这几个文件的发文日期就相同,这完全符合建立聚集索引要求的:“既不能绝大多数都相同,又不能只有极少数相同”的规则。
由此看来,我们建立“适当”的聚合索引对于我们提高查询速度是非常重要的。
3、把所有需要提高查询速度的字段都加进聚集索引,以提高查询速度上面已经谈到:在进行数据查询时都离不开字段的是“日期”还有用户本身的“用户名”。
既然这两个字段都是如此的重要,我们可以把他们合并起来,建立一个复合索引(compound index)。
很多人认为只要把任何字段加进聚集索引,就能提高查询速度,也有人感到迷惑:如果把复合的聚集索引字段分开查询,那么查询速度会减慢吗?带着这个问题,我们来看一下以下的查询速度(结果集都是25万条数据):(日期列fariqi 首先排在复合聚集索引的起始列,用户名neibuyonghu排在后列):(1)select gid,fariqi,neibuyonghu,title from Tgongwen where fariqi>''2004-5-5''查询速度:2513毫秒(2)select gid,fariqi,neibuyonghu,title from Tgongwenwhere fariqi>''2004-5-5'' and neibuyonghu=''办公室''查询速度:2516毫秒(3)select gid,fariqi,neibuyonghu,title from Tgongwen where neibuyonghu=''办公室''查询速度:60280毫秒从以上试验中,我们可以看到如果仅用聚集索引的起始列作为查询条件和同时用到复合聚集索引的全部列的查询速度是几乎一样的,甚至比用上全部的复合索引列还要略快(在查询结果集数目一样的情况下);而如果仅用复合聚集索引的非起始列作为查询条件的话,这个索引是不起任何作用的。
当然,语句1、2的查询速度一样是因为查询的条目数一样,如果复合索引的所有列都用上,而且查询结果少的话,这样就会形成“索引覆盖”,因而性能可以达到最优。
同时,请记住:无论您是否经常使用聚合索引的其他列,但其前导列一定要是使用最频繁的列。
四、其他书上没有的索引使用经验总结1、用聚合索引比用不是聚合索引的主键速度快下面是实例语句:(都是提取25万条数据)select gid,fariqi,neibuyonghu,reader,title from Tgongwen wherefariqi=''2004-9-16''使用时间:3326毫秒select gid,fariqi,neibuyonghu,reader,title from Tgongwen wheregid<=250000使用时间:4470毫秒这里,用聚合索引比用不是聚合索引的主键速度快了近1/4。
2、用聚合索引比用一般的主键作order by时速度快,特别是在小数据量情况下select gid,fariqi,neibuyonghu,reader,title from Tgongwen order by fariqi用时:12936select gid,fariqi,neibuyonghu,reader,title from Tgongwen order by gid用时:18843这里,用聚合索引比用一般的主键作order by时,速度快了3/10。