索引的含义与特点

索引是一个单独的、存储在磁盘上的数据库结构,它们包含对数据所有记录的引用指针,postgresql列类型都可以被索引,对相关列索引是提高查询操作效率的最佳途径。例如,查询select * from table where num=10000.如果没有索引,必须遍历整个表,如果在num上创建索引,PostgreSQL不需要任何扫描,直接索引里面找10000.就知道这行的位置。

索引的优点有:1234 唯一性索引,保证数据完整性2提高查询数据3实现数据参考的完整性,加速表与表连接4.提高数据分组、排序操作的速度。

缺点有:1索引建立耗费一定的物理空间2创建索引耗费时间、数据量的增加,创建索引所耗费的时间增加3数据维护时,索引也要需要动态维护

索引设计原则:1.索引并非越多越好,大量的索引占用大量磁盘空间,影响Insert、delete、update的速度

2.避免对经常更新的表建立索引,对经常查询的表应该创建索引,避免不必要增加字段

3.数据量小的表最好不用索引,数据量少,查询花费的时间可能比遍历索引的时间还要短

4.在条件表达中经常用的,不同值较多的列上建立索引,例如“性别字段”不需要建立索引

5.当唯一性是数据本身的特征时,制定唯一索引,保证列的完整性,提高查询速度

6.在频繁建立排序或分组的列上建立索引时,如果排序的列有多个,可以再这些列上建立组合索引

视图

视图优点:1 简单化

2 安全性,可以用数据库授权命令使每个用户对数据库的检索限制在特定的数据库对象上。但不能限定在特定的行和列上,通过视图,可以将用户限制在数据的不同子集上。

3 保证逻辑数据的独立性

postgreSQL数据库(索引、视图)的更多相关文章

  1. Oracle数据库之视图与索引

    Oracle数据库之视图与索引 1. 视图简介 视图是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改. 视图基于的表称为基表,视图是存储在数据字典里的一条SE ...

  2. SQL数据库—<5>视图、索引…简单学习

    视图 掌握:1.视图是个什么东西?2.会建视图,会查视图3.知道视图的主要功能是查询,不是增删除改. 视图的定义: 视图可以认为是从一个数据表或者多个数据表中导出的表,视图本身没有任何数据,它是用来存 ...

  3. 对Oracle 、SQL Server、MySQL、PostgreSQL数据库优缺点分析

    对Oracle .SQL Server.MySQL.PostgreSQL数据库优缺点分析 Oracle Database Oracle Database,又名Oracle RDBMS,或简称Oracl ...

  4. Spring Boot中使用PostgreSQL数据库

    在如今的关系型数据库中,有两个开源产品是你必须知道的.其中一个是MySQL,相信关注我的小伙伴们一定都不陌生,因为之前的Spring Boot关于关系型数据库的所有例子都是对MySQL来介绍的.而今天 ...

  5. SQL Server 索引视图 聚簇索引

    创建示例: 朋友的网站速度慢,让我帮忙看下,他用的SQL Server里面 有一个文章表里面有30多万条记录 还有一个用户表里面也差不多17万记录 偏偏当初设计的时候没有冗余字段 很多帖子信息需要JO ...

  6. postgresql数据库的数据导出

    一.pg_dump的用法:数据库的导入导出是最常用的功能之一,每种数据库都提供有这方面的工具,例如Oracle的exp/imp,Informix的dbexp/dbimp,MySQL的mysqldump ...

  7. SQL Server 数据库索引

    原文:SQL Server 数据库索引 一.什么是索引 减少磁盘I/O和逻辑读次数的最佳方法之一就是使用[索引] 索引允许SQL Server在表中查找数据而不需要扫描整个表. 1.1.索引的好处: ...

  8. 关于PDF.NET开发框架对Mysql Sqlite PostgreSQL数据库分页支持的个人看法

    关于PDF.NET开发框架的名字由来  在设计www.pwmis.com站点的时候,考虑到架构的兼容性和将来升级的可能性,最重要的是没有足够的时间去为网站添加和维护很多复杂的程序,所以在借鉴前人成功经 ...

  9. 使用SQL Server 2000索引视图提高性能

    什么是索引视图? 许多年来,Microsoft? SQL Server? 一直都提供创建虚拟表(称为视图)的功能.在过去,这些视图主要有两种用途: 提供安全机制,将用户限制在一个或多个基表中的数据的某 ...

随机推荐

  1. JavaScript对Json的增删改属性

    <script type="text/javascript"> var json = { "age":24, "name":&q ...

  2. [转]Web Services使用out参数

    本文转自:http://www.cnblogs.com/zhaozhan/archive/2010/10/25/1860837.html Web Services使用out参数,在SOAP协议中会跟返 ...

  3. 用原生js模仿jquery

    阅读声明:本文档仅供学习,由于个人能力有限,文档中有错漏的地方还请指出,大家共同学习. 目前在学习怎么样写jquery,模仿阶段,有兴趣的同学可以和我一起学习,共同交流,在学习的路上希望有你做伴. 在 ...

  4. sql语句使用游标修改表中数据

    declare @a varchar(),@b varchar() declare user_cursor cursor for select a,b from tableA tab open use ...

  5. 初见,Devexpress

    [绥江一百]http://www.sj100.net                                                  欢迎,进入绥江一百感谢点击[我的小网站,请大家多 ...

  6. 关于DB2 SQL0805N找不到程序包的错误解决办法

    DB2在执行SQL语句的时候会使用内部定义的包(package)来保持不同级别的游标的稳定性, 包的名字就是“ULLID.SYSLH2XX“. DB2 里面默认的时候会创建3个这样的包即SYSLH20 ...

  7. Win7 服务优化个人单机版

    我的PC设备比较旧了,为了系统能流畅点,不必要的服务就不开启了.然而,服务那么多,每次重装,都要从头了解一下一边,浪费时间. 个人在网络上收集信息并结合自己的摸索,整理如下,以备查找. 服务名称  显 ...

  8. HTML+CSS学习总结:

    1. 注释:<div> 是一个块级元素,也就是说,浏览器通常会在 div 元素前后放置一个换行符. 提示:请使用 <div> 元素来组合块级元素,这样就可以使用样式对它们进行格 ...

  9. 跳出if判断

    //out是随便起的,也可为haha out:if(1<2){           System.out.println("进入第一步 1<2"); if(2<3 ...

  10. 【转】C#异步编程及其同步机制

    C#异步编程及其同步机制 本篇文章涵盖一下几部分内容: 1. 什么是异步编程,为什么会需要异步编程 2. .NET下的异步编程及其发展 3. .NET线程同步机制及线程间数据封送 4. 异步模式 5. ...