- 浏览: 587914 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (231)
- JAVA (64)
- Oracle (50)
- JAVA IDE (10)
- AJax (8)
- Spring (12)
- hibernate (10)
- Struts (9)
- Jquery (7)
- EXT js (9)
- Tomcat (2)
- MySql (13)
- SQLServer 2005 (3)
- java script (10)
- DB2 (6)
- Linux (15)
- solaris (3)
- 开发模式 (16)
- windows (15)
- 硬件 (2)
- PHP (3)
- 框架整合 (17)
- Weblogic (12)
- JBOSS (1)
- 协议 (7)
- 云计算 (6)
- JSF (1)
- richfaces (1)
- python (1)
最新评论
-
woshiicesky:
怎么使用的?
解决jdk1.7 不支持TLS1.2的问题 -
sunzbking:
哇!大佬谢谢分享解决问题啦
解决jdk1.7 不支持TLS1.2的问题 -
doren:
谢谢,很好解决我们的问题
解决jdk1.7 不支持TLS1.2的问题 -
贝塔ZQ:
PageOffice插件,挺好使得,可以试试
POI解析Excel 文件读取,修改,另存等功能 -
程俊2009:
需要用哪些jar,可以说下吗
jdom读写XMl文件
索引的作用就象书的目录,给出条件查找目录找出所需要的内容 主键索引和聚合索引 我们来看:(gid是主键,fariqi是聚合索引列): select top 10000 gid,fariqi,reader,title from tgongwen 用时:196 毫秒。 扫描计数 1,逻辑读 289 次,物理读 1 次,预读 1527 次。 select top 10000 gid,fariqi,reader,title from tgongwen order by gid asc 用时:4720毫秒。 扫描计数 1,逻辑读 41956 次,物理读 0 次,预读 1287 次。 select top 10000 gid,fariqi,reader,title from tgongwen order by gid desc 用时:4736毫秒。 扫描计数 1,逻辑读 55350 次,物理读 10 次,预读 775 次。 select top 10000 gid,fariqi,reader,title from tgongwen order by fariqi asc 用时:173毫秒。 扫描计数 1,逻辑读 290 次,物理读 0 次,预读 0 次。 select top 10000 gid,fariqi,reader,title from tgongwen order by fariqi desc 用时:156毫秒。 扫描计数 1,逻辑读 289 次,物理读 0 次,预读 0 次。 从以上我们可以看出,不排序的速度以及逻辑读次数都是和“order by 聚集索引列” 的速度是相当的,但这些都比“order by 非聚集索引列”的查询速度是快得多的。 同时,按照某个字段进行排序的时候,无论是正序还是倒序,速度是基本相当的。
评论
1 楼
lgs0626
2012-05-29
1.复合索引有什么作用?
1。你的索引这样创建 create index yourindex on yourtable(id,name,city)
2.当你在查询的时候 select id,name,city from yourtable 这时候查询优化器,不在扫描表了,而是直接的从索引中拿数据,因为索引中有这些数据, 这叫覆盖式查询,这样的查询速度非常快。 2. 用聚集索引、唯一值索引、不重新计算索引、文件组索引。到底哪个好些?
在创建聚集索引之前,应先了解您的数据是如何被访问的。可考虑将聚集索引用于: 包含大量非重复值的列。 使用下列运算符返回一个范围值的查询:BETWEEN、>、>=、< 和 <=。 被连续访问的列。 返回大型结果集的查询。 经常被使用联接或 GROUP BY 子句的查询访问的列;一般来说,这些是外键列。对 ORDER BY 或 GROUP BY 子句中指定的列进行索引,可以使 SQL Server 不必对数据进行排序,因为这些行已经排序。这样可以提高查询性能。 OLTP 类型的应用程序,这些程序要求进行非常快速的单行查找(一般通过主键)。应在主键上创建聚集索引。 聚集索引不适用于: 频繁更改的列 这将导致整行移动(因为 SQL Server 必须按物理顺序保留行中的数据值)。这一点要特别注意,因为在大数据量事务处理系统中数据是易失的。 宽键 来自聚集索引的键值由所有非聚集索引作为查找键使用,因此存储在每个非聚集索引的叶条目内。 在创建非聚集索引之前,应先了解您的数据是如何被访问的。可考虑将非聚集索引用于: 包含大量非重复值的列,如姓氏和名字的组合(如果聚集索引用于其它列)。如果只有很少的非重复值,如只 有 1 和 0,则大多数查询将不使用索引,因为此时表扫描通常更有效。 不返回大型结果集的查询。 返回精确匹配的查询的搜索条件(WHERE 子句)中经常使用的列。 经常需要联接和分组的决策支持系统应用程序。应在联接和分组操作中使用的列上创建多个非聚集索引,在任何外键列上创建一个聚集索引。 在特定的查询中覆盖一个表中的所有列。这将完全消除对表或聚集索引的访问。
3. 总结要点:
一个表可以有多个非聚集索引,但只能有一个聚集索引。
如果该表上尚未创建聚集索引,且在创建 PRIMARY KEY 约束时未指定非聚集索引,
PRIMARY KEY 约束会自动创建聚集索引
4。例子:
CREATE TABLE tbl_test ( col_pk INT NOT NULL, col_1 TINYINT NOT NULL, col_2 SMALLINT NOT NULL, col_3 TINYINT NOT NULL, col_4 DATETIME NULL, col_5 DATETIME NULL );
GO
CREATE CLUSTERED INDEX idx_tbl_test_00 ON tbl_test ( col_4 ASC, col_5 ASC, col_1 ASC, col_2 ASC, col_3 ASC ); GO CREATE NONCLUSTERED INDEX idx_tbl_test_01 ON tbl_test ( col_1 ASC, col_2 ASC, col_3 ASC ) GO ALTER TABLE tbl_test ADD CONSTRAINT pk_tbl_test PRIMARY KEY ( col_pk ); GO
5。例子2
--增加列 alter table [TableName] add [P_ID] bigint not null default 0
--删除列 alter table [TableName] drop column [P_ID]
--设置主键 alter table [TableName] add constraint PK_TableName primary key (P_ID)
--删除主键 alter table [TableName] drop constraint PK_TableName
--创建聚集索引(一个表中允许一个聚集索引) CREATE CLUSTERED INDEX [tTopIndex] ON [TableName] ([P_ID]) ON [PRIMARY]
--创建非聚集索引 CREATE INDEX [tTopIndex] ON TableName ([P_ID]) ON [PRIMARY]
--删除索引 drop index [TableName].[tTopIndex]
--增加字段说明 EXECUTE sp_addextendedproperty N'MS_Description', N'照片ID', N'user', N'dbo', N'table', N'TableName', N'column', N'P_ID'
1。你的索引这样创建 create index yourindex on yourtable(id,name,city)
2.当你在查询的时候 select id,name,city from yourtable 这时候查询优化器,不在扫描表了,而是直接的从索引中拿数据,因为索引中有这些数据, 这叫覆盖式查询,这样的查询速度非常快。 2. 用聚集索引、唯一值索引、不重新计算索引、文件组索引。到底哪个好些?
在创建聚集索引之前,应先了解您的数据是如何被访问的。可考虑将聚集索引用于: 包含大量非重复值的列。 使用下列运算符返回一个范围值的查询:BETWEEN、>、>=、< 和 <=。 被连续访问的列。 返回大型结果集的查询。 经常被使用联接或 GROUP BY 子句的查询访问的列;一般来说,这些是外键列。对 ORDER BY 或 GROUP BY 子句中指定的列进行索引,可以使 SQL Server 不必对数据进行排序,因为这些行已经排序。这样可以提高查询性能。 OLTP 类型的应用程序,这些程序要求进行非常快速的单行查找(一般通过主键)。应在主键上创建聚集索引。 聚集索引不适用于: 频繁更改的列 这将导致整行移动(因为 SQL Server 必须按物理顺序保留行中的数据值)。这一点要特别注意,因为在大数据量事务处理系统中数据是易失的。 宽键 来自聚集索引的键值由所有非聚集索引作为查找键使用,因此存储在每个非聚集索引的叶条目内。 在创建非聚集索引之前,应先了解您的数据是如何被访问的。可考虑将非聚集索引用于: 包含大量非重复值的列,如姓氏和名字的组合(如果聚集索引用于其它列)。如果只有很少的非重复值,如只 有 1 和 0,则大多数查询将不使用索引,因为此时表扫描通常更有效。 不返回大型结果集的查询。 返回精确匹配的查询的搜索条件(WHERE 子句)中经常使用的列。 经常需要联接和分组的决策支持系统应用程序。应在联接和分组操作中使用的列上创建多个非聚集索引,在任何外键列上创建一个聚集索引。 在特定的查询中覆盖一个表中的所有列。这将完全消除对表或聚集索引的访问。
3. 总结要点:
一个表可以有多个非聚集索引,但只能有一个聚集索引。
如果该表上尚未创建聚集索引,且在创建 PRIMARY KEY 约束时未指定非聚集索引,
PRIMARY KEY 约束会自动创建聚集索引
4。例子:
CREATE TABLE tbl_test ( col_pk INT NOT NULL, col_1 TINYINT NOT NULL, col_2 SMALLINT NOT NULL, col_3 TINYINT NOT NULL, col_4 DATETIME NULL, col_5 DATETIME NULL );
GO
CREATE CLUSTERED INDEX idx_tbl_test_00 ON tbl_test ( col_4 ASC, col_5 ASC, col_1 ASC, col_2 ASC, col_3 ASC ); GO CREATE NONCLUSTERED INDEX idx_tbl_test_01 ON tbl_test ( col_1 ASC, col_2 ASC, col_3 ASC ) GO ALTER TABLE tbl_test ADD CONSTRAINT pk_tbl_test PRIMARY KEY ( col_pk ); GO
5。例子2
--增加列 alter table [TableName] add [P_ID] bigint not null default 0
--删除列 alter table [TableName] drop column [P_ID]
--设置主键 alter table [TableName] add constraint PK_TableName primary key (P_ID)
--删除主键 alter table [TableName] drop constraint PK_TableName
--创建聚集索引(一个表中允许一个聚集索引) CREATE CLUSTERED INDEX [tTopIndex] ON [TableName] ([P_ID]) ON [PRIMARY]
--创建非聚集索引 CREATE INDEX [tTopIndex] ON TableName ([P_ID]) ON [PRIMARY]
--删除索引 drop index [TableName].[tTopIndex]
--增加字段说明 EXECUTE sp_addextendedproperty N'MS_Description', N'照片ID', N'user', N'dbo', N'table', N'TableName', N'column', N'P_ID'
发表评论
-
mysql8.0.11安装和远程连接配置
2018-05-03 16:03 5540mysql 8.0.11 解压版 mysql& ... -
oracle vatchar2 转换成clob方法
2017-06-08 17:38 1280create table cssc_result1 as ... -
oracle 回滚某个表的数据到指定时间点
2017-05-04 16:45 1901alter table 表名 enable row move ... -
oracle 监控常用sql
2017-04-19 10:08 678select * from V$process; SE ... -
ORACLE查询表修改时间
2016-10-11 09:20 16531、select uat.table_name from u ... -
oracle恢复误删除drop掉的表
2016-09-25 09:28 1302--查看回收站中表 select object_nam ... -
Oracle 快速创建全局dblink
2016-09-08 10:26 987-- 如果创建全局 dblink,必须使用 systm 或 ... -
Oracle substr 截取nvarchar2 问题
2016-04-20 10:50 995-- 查询业务类型 -- 数据内容为:2, ... -
Oracle 11g ORA-12514 解决办法
2016-03-12 14:58 35631. 找到listener.ora监听文件,具体位置: ... -
oracle em 启动问题
2015-06-01 16:34 1052一、em 常用命令 emca -repos create ... -
mysql 远程连接权限不足问题
2014-06-06 09:54 1153GRANT ALL PRIVILEGES ON *.* TO ... -
Mysql大小写敏感的问题
2014-06-06 09:50 8201、Linux下mysql安装完后是默认:区分表名的大小写, ... -
ORACLE查询树型关系
2014-02-19 17:05 708oracle中的select语句可以用START WITH ... -
Oracle 修改用户密码180天限制的问题
2013-09-16 15:22 886Oracle11g中,为了让客户在半年时间内更改数据库用户密 ... -
oracle 导出sequences
2013-06-29 17:27 1097如下脚本,可以将某个用户的全部sequence查询出来,并拼 ... -
oracle11g更改字符集AL32UTF8为ZHS16GBK
2013-06-24 12:00 1683Database character set (AL32UT ... -
SQL批量更新数据库中所有用户数据表中字段类型为tinyint为int
2013-05-29 17:28 1772--SQL获取指定数据表所有字段类型和精度脚本,直接执 ... -
关于 MySQL 的 boolean 和 tinyint(1)
2013-05-29 16:48 3506boolean类型MYSQL保存BOOLEAN值时用1代表T ... -
MySQL InnoDB等待锁超时错误
2013-05-25 16:02 6368当一个事务在请求某个资源时,它将待这个资源被解锁后继续操作 ... -
统计mysql数据库每个库的大小,表总数等
2013-04-18 15:20 1342作用:统计每个库的真实数据与索引数据的总和的大小单位为MB, ...
相关推荐
本文主要探讨Oracle数据库索引的作用、分类以及如何通过索引来优化数据库性能。 **1. 索引的作用** 索引如同书籍的目录,可以快速定位到数据的位置,避免全表扫描。在Oracle数据库中,索引包含了一个或多个列的值...
### 创建索引的作用及其利弊分析 在数据库管理与优化领域,索引是提升查询效率的重要工具之一。本文将从创建索引的作用出发,详细探讨其背后的技术原理、实际应用场景以及可能带来的利弊。 #### 一、索引的基本...
5. **所有关键字都在叶子节点**:数据存取只涉及叶子节点,非叶子节点仅起到索引作用,降低了数据访问的深度。 **B+树的优势:** 1. **平衡性**:B+树通过保持高度平衡,确保了查询效率的稳定性,无论数据分布在树...
什么是索引 拿汉语字典的目录页(索引)打比方:正如汉语字典中的汉字按页存放一样,SQL Server中的数据记录也是按页存放的,每页容量一般为4K 。为了加快查找的速度,汉语字(词)典一般都有按拼音、笔画、偏旁...
从给定文件的标题和部分内容来看,这篇信息实验报告主要围绕的是大型数据库环境下的索引设计与管理...通过这些内容的学习,可以加深对大型数据库系统中索引作用与管理的理解,从而更好地应用在实际的数据库优化工作中。
SQL Server 索引中 include 的魅力(具有包含性列的索引) SQL Server 索引中 include 的魅力(具有包含性列的索引)是指在非聚集索引中添加非键列,以扩展索引的功能,提高查询性能。通过将非键列添加到非聚集索引...
#### 一、索引的基础概念及作用 索引在数据库管理系统中扮演着至关重要的角色,它能够显著提高查询效率,减少系统的响应时间。简单来说,索引就像是图书的目录,帮助用户更快地定位到所需的信息。在数据库领域,...
LabVIEW 中的数组索引详细讲解 LabVIEW 中的数组索引是指在循环结构中自动完成数组元素的索引或累积的过程。这种能力称为自动索引(Auto-indexing)。在 LabVIEW 中,For 循环中自动索引功能是默认启用的,而 While...
在数据库设计中,索引是一种至关重要的数据结构,它的主要作用是提高数据查询的效率,降低数据访问的时间成本。下面将详细阐述数据库索引的作用、原理以及如何选择和使用索引。 首先,索引能够加快数据检索速度。当...
在实际应用中,插件提供的“INDEXes.pdb”、“INDEXes.sdk.pln”和“(INDEXes.sdk Resources)”文件起着关键作用。“INDEXes.pdb”可能是插件的数据文件,用于存储索引的相关数据和设置;“INDEXes.sdk.pln”可能是...
分区索引可以是局部索引或全局索引,全局索引可以跨越多个分区,而局部索引则只能作用于一个分区。 创建分区索引 创建分区索引可以使用以下语句: ```sql CREATE INDEX <index_name> ON () GLOBAL PARTITION BY ...
### MySQL 索引与执行计划 #### 一、索引与执行计划 ##### 1.1 索引入门 在深入探讨之前,我们首先需要理解什么是索引以及其重要性。 ###### 1.1.1 索引是什么 索引(Index)在MySQL中是一种帮助数据库高效获取...
本篇文章将深入探讨索引的基本原理、类型以及其在实际应用中的作用。 首先,索引的创建基于某种数据结构,如B树、哈希表或位图等。B树( Balanced Tree)是最常见的一种,它允许数据在磁盘上保持有序,同时支持快速...
通过这次MySQL练习,你将更深入地理解索引的作用、创建方法以及查看索引的技巧,这对优化数据库性能至关重要。在实际应用中,根据业务需求和数据特性选择合适的索引策略,是数据库管理员和开发人员必备的技能之一。
索引的主要目的是为了提高数据检索的速度,同时也可以带来以下作用: - **保证数据的准确性**:唯一的索引值对应唯一的数据库记录,这样可以确保数据的准确性和唯一性。 - **加快检索速度**:索引可以显著提高检索...
- **理解索引**:了解索引的基本概念、作用以及不同类型的索引。 - **设置最佳索引**:根据应用程序需求来设计最适合的索引方案。 - **解决常见限制**:了解MySQL索引的一些常见限制,并找到相应的解决方案。 #### ...
索引是数据库管理系统中不可或缺的一部分,它主要的作用在于提升查询效率。ISAM(Indexed Sequential Access Method)索引结构是IBM提出的一种常见实现方式,被广泛应用于各种数据库产品中。合理使用索引对于优化...
本文将深入探讨如何正确使用索引,并通过具体案例分析来帮助读者更好地理解索引的作用及其最佳实践。 #### 一、索引的重要性 索引类似于书籍的目录,可以帮助数据库快速定位数据的位置,从而加快数据检索的速度。...
索引的作用是加快数据的查询速度,使得数据库中的数据更易于管理和维护。 SqlServer索引工作原理可以分为两大类:聚簇索引和非聚簇索引。 聚簇索引是一种树形结构的索引,它的数据物理存储顺序和索引顺序一致的。...
在数据库管理领域,索引是优化查询性能的关键技术之一...综上所述,虽然索引在提高查询性能方面发挥着至关重要的作用,但在实际应用中也需要权衡其带来的优势与成本。合理地设计和管理索引对于优化数据库性能至关重要。