`

数据库优化前基础准备

阅读更多
聚集、非聚集索引、唯一索引、复合索引、系统自建索引
2008-11-25 09:59
聚集与非聚集索引
摘自:http://hi.baidu.com/flyabout/blog/item/866505d1d9ed9ad3572c84a3.html

索引是在数据库表或者视图上创建的对象,目的是为了加快对表或视图的查询的速度

按照存储方式分为:聚集与非聚集索引
按照维护与管理索引角度分为:唯一索引、复合索引和系统自动创建的索引

索引的结构是由:根节点--->非叶节点--->非叶节点--->叶节点


1、聚集索引(只能建立一个):表中存储的数据按照索引的顺序存储,检索效率比普通索引高,但对数据新增/修改/删除的影响比较大
特点:
 
  (1) 一个表可以最多可以创建249个索引
  (2) 先建聚集索引才能创建非聚集索引
(3) 非聚集索引数据与索引不同序
(4) 数据与索引在不同位置
(5) 索引在叶节点上存储,在叶节点上有一个"指针"直接指向要查询的数据区域
(6) 数据不会根据索引键的顺序重新排列数据

 创建聚集索引的语法:
   create CLUSTERED INDEX idximpID ON EMP(empID)
2、非聚集索引(可以建立多个):不影响表中的数据存储顺序,检索效率比聚集索引低,对数据新增/修改/删除的影响很少
特点:
   (1) 无索引,数据无序
   (2) 有索引,数据与索引同序
   (3) 数据会根据索引键的顺序重新排列数据
   (4) 一个表只能有一个索引
   (5) 叶节点的指针指向的数据也在同一位置存储
语法:
create NONCLUSTERED INDEX idxempID on emp(empID)
3、惟一索引:惟一索引可以确保索引列不包含重复的值.
可以用多个列,但是索引可以确保索引列中每个值组合都是唯一的
姓   名
李   二
张   三
王   五
语法: create unique index idxempid on emp(姓,名)

4、复合索引:如果在两上以上的列上创建一个索引,则称为复合索引。
那么,不可能有两行的姓和名是重复的
语法:
create index indxfullname on addressbook(firstname,lastname)

5、系统自建的索引:在使用T_sql语句创建表的时候使用PRIMARY KEY或UNIQUE约束时,会在表上自动创建一个惟一索引
自动创建的索引是无法删除的
语法:
create table ABc
( empID int primary key,
   firstname varchar(50)UNIQUE,
   lastname   varchar(50)UNIQUE,
)
这样的结果就出来了三个索引,但只有一个聚集索引哦


6、创建索引的方法:
1、企业管理器中
(1)右击某个表,所有任务---管理索引,打开管理索引,单击“新建”就可以创建索引
(2)在设计表中进行设计表,管理索引/键
(3)在关系图中,添加表后右击关系图中的某个表,就有“索引/键”
(4)通过向导,数据库---创建索引向导
(5)通过T-SQL语句
2、能过“索引优化向导”来优化索引的向导,通过它可以决定选择哪些列做为索引列
 



实验的流程:
1、先创建一个表,然后查看一下他的占用资源情况及select * from 表
看一下排序
2、然后创建索引,在观看一下占用资源的情况,及排序情况,看看聚集与非聚集的排序是
  否用变化
 答案是:聚集的有变化,非聚集的排序与未创建索引之前一样
分享到:
评论

相关推荐

    浅谈数据库系统优化.docx

    基于SQL Server的数据库优化是指对数据库处理、存储、查询等进行调优的过程。 基于SQL Serve数据库的优化,应该从数据库设计的时候就做好优化打算,为后面系统正式投入运行后优化做好准备。其主要策略有: 1)调优...

    Oracle数据库性能优化的艺术 (文平) 高清PDF扫描版

    《oracle数据库性能优化的艺术》是资深数据库专家、unix系统专家、系统架构师近20年工作经验的结晶。 《oracle数据库性能优化的艺术》内容高屋建瓴,用辩证法中的系统化分析方法,不仅从硬件(服务器系统、存储系统...

    数据库设计与优化.docx

    数据库设计与优化全文共9页,当前为第1页。数据库设计与优化全文共9页,当前为第1页。数据库设计与优化 数据库设计与优化全文共9页,当前为第1页。 数据库设计与优化全文共9页,当前为第1页。 摘 要:数据库技术是...

    ASP.NET+SQL Server 数据库开发与实例 光盘

    本书前3章主要对ASP.NET应用程序的基础知识以及SQL Server数据库应用高级技术分别进行说明和解析;第4章~第11章通过8个经典的应用程序开发项目,系统全面地介绍了使用ASP.NET和SQL Server开发数据库应用程序的精髓...

    SQL语言+数据库相关知识+SQL语言基础知识+系列课

    从SQL的基础知识到数据库的高级应用,再到大数据环境下的数据处理,本系列课程将带领学习者逐步深入,掌握数据库技术的核心概念和实践技能。 适合人群:本系列课程适合希望提升数据库技能的中级程序员,尤其是那些...

    数据库系统导论(第七版)

    第一部分 基础知识 第1章 数据库管理概述 1 1.1 引言 1 1.2 什么是数据库系统 3 1.3 什么是数据库 6 1.4 为什么用数据库 10 1.5 数据独立性 12 1.6 关系系统及其他 15 1.7 小结 17 练习 17 参考文献和简介 19 部分...

    SQL语言知识+数据库知识+编程知识+系列课程

    从SQL的基础知识到数据库的高级应用,再到大数据环境下的数据处理,本系列课程将带领学习者逐步深入,掌握数据库技术的核心概念和实践技能。 第一章:SQL基础入门 第二章:SQL核心组件 第三章:SQL查询与数据检索 第...

    库存物资管理系统数据库设计.doc

    需求分析的目标是给出应用领域中数据项、数据项之间的关系和数据操作任务的 详细定义,为数据库系统的概念设计、逻辑设计和物理设计奠定基础,为优化数据库系 统的逻辑结构和物理结构提供可靠依据。设计人员应与用户...

    20万字必备java面试八股文宝典-多线程.数据库.Spring.SpringBoot.Linux.分布式.设计模式.面试指导

    针对数据库相关知识进行了详细的介绍,包括SQL语法、常用数据库管理系统(如MySQL、Oracle等)的使用、数据库设计与优化等内容,帮助读者在面试中对数据库相关问题有所准备。 Spring框架的核心概念、IoC(控制反转...

    Mysql基础概念及常见面经.pdf

    文档中详细介绍了MySQL数据库的安装和配置方法、SQL语言的基本语法和常见操作,以及MySQL数据库的性能优化等方面的内容。 同时,文档中还提供了多个常见面试题和详细解答,帮助读者更好地准备MySQL数据库相关的面试...

    面试SQL基础看这里!一天搞定50常考题

    内容涵盖了SQL基础概念、数据类型、SELECT语句、WHERE子句、ORDER BY子句、INSERT INTO语句、UPDATE语句、DELETE语句、JOIN操作、子查询、事务、索引、数据库设计、规范化、数据库备份与恢复、数据库优化、安全性、...

    涵盖了 Java 基础、集合、源码、并发、虚拟机、框架、数据库、网络编程、设计模式、新特性和数据结构等多个知识领域的面试突击

    数据库和缓存:SQL优化、索引、Redis、Memcached等 分布式系统:负载均衡、集群、分布式事务、分布式锁等 使用人群: Java初/中级工程师,准备面试、,巩固和提升Java技能 -高级工程师和架构师,掌握核心原理,解决复杂问题...

    2017最新老男孩MySQL高级专业DBA实战课程全套【清晰不加密】,看完教程月入40万没毛病

    第十五部 MySQL数据库优化思想与优化实战(9节) 1-网站打开慢mysql问题多解决方案企业案例.avi 2-MySQL索引优化要点精讲01 3-MySQL索引优化生产案例讲解02 4-linux运维人员必须掌握的核心经验案例.avi MySQL数据库...

    东北大学软件学院程序实践(四)数据库实验报告

    2.完成关于关系数据库基础知识的题目1; 3.运行给定的SQL语句,生成图书馆管理系统的数据库,编写相应的SQL语句,完成题目2中要求的内容; 4.运行给定的SQL语句,生成图书馆管理系统的数据库,编写高级的SQL语句,...

    Access 2000数据库系统设计(PDF)---025

    Access 2000数据库系统设计(PDF)---025目 录译者序前言第一部分 Access基础第1章 Access 2000的新增功能 11.1 Access 2000透视 11.2 用Office Web组件部署数据访问页 21.2.1 Office Web 组件 21.2.2 DAP演示测试....

    数据库设计案例(1).doc

    2、概念结构设计阶段: 整个数据库设计的关键,通过对用户需求进行综合、归纳与抽象,形成一个独立于具 体DBMS的概念模型 3、逻辑结构设计阶段: 将概念结构转换为某个DBMS所支持的数据模型,并对其进行优化。...

    浅谈数据库设计方法.doc

    1 设计前的准备工作 1.1 研究现有数据库设计环境 在我们设计数据库的时候,我们应该先观察每一名客户对数据库有那些需求,适当的 时间内去检查下数据库的运行情况,观察软件具体结构,给出合理的修复方案。...

    PostgreSQL实战 (数据库技术丛书)

    本书基于PostgreSQL 10编写,重点介绍...进阶篇包括第10到18章,主要介绍PostgreSQL进阶内容,例如性能优化、物理复制、逻辑复制、备份与恢复、高可用、版本升级、Oracle数据库迁移PostgreSQL实战、PostGIS等。

Global site tag (gtag.js) - Google Analytics