数据库索引有什么优缺点

数据库索引有什么优缺点,第1张

优点:

1、大大加快数据的检索速度;

2、创建唯一性索引,保证数据库表中每一行数据的唯一性;

3、加速表和表之间的连接;

4、在使用分组和排序子句进行数据检索时,可以显著减少查询中分组和排序的时间。

缺点:

1、索引需要占物理空间。

2、当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,降低了数据的维护速度。

发展历史:

索引最早出现于西方,主要是中世纪欧洲宗教著作的索引。18世纪以后西方开始有主题索引,至19世纪末,内容分析索引被广泛使用。中国的索引出现较晚。一般认为,明末傅山所编的《两汉书姓名韵》是现存最早的人名索引。清代乾嘉时期,章学诚曾力倡编纂群书综合索引。

20世纪20年代,随着西方索引理论与编制技术的传入,中国现代意义上的索引编制与研究才蓬勃展开 。1930年钱亚新发表《索引和索引法》,1932年洪业发表《引得说》,标志着具有中国特色的现代索引理论、技术已迅速发展起来。

20世纪50年代,计算机技术被运用于索引编制 。此后,机编索引的大量出现,使索引编制理论、技术、索引载体形式发生了深刻变革。

SQL标准中没有涉及索引,但商用关系数据库管理系统一般都支持索引机制,只是不同的关系数据库管理系统支持的索引类型不尽相同。

索引已经成为关系数据库非常重要的部分。它们被用作包含所关心数据的表指针。通过一个索引,能从表中直接找到一个特定的记录,而不必连续顺序扫描这个表,一次一个地去查找。对于大的表,索引是必要的。没有索引,要想得到一个结果要等好几个小时、好几天,而不是几秒钟。

优点:更加安全,逻辑更加清晰

缺点:考虑分层,多谢代码,不停调用

三级模式结构:外模式、模式和内模式

一、模式(Schema)

定义:也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。

理解:

一个数据库只有一个模式;

是数据库数据在逻辑级上的视图;

数据库模式以某一种数据模型为基础;

定义模式时不仅要定义数据的逻辑结构(如数据记录由哪些数据项构成,数据项的名字、类型、取值范围等),而且要定义与数据有关的安全性、完整性要求,定义这些数据之间的联系。

二、外模式(External

Schema)

定义:也称子模式(Subschema)或用户模式,是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。

理解:

一个数据库可以有多个外模式;

外模式就是用户视图;

外模式是保证数据安全性的一个有力措施。

三、内模式(Internal

Schema)

定义:也称存储模式(Storage

Schema),它是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式(例如,记录的存储方式是顺序存储、按照B树结构存储还是按hash方法存储;索引按照什么方式组织;数据是否压缩存储,是否加密;数据的存储记录结构有何规定)。

理解:

一个数据库只有一个内模式;

一个表可能由多个文件组成,如:数据文件、索引文件。

它是数据库管理系统(DBMS)对数据库中数据进行有效组织和管理的方法

其目的有:

为了减少数据冗余,实现数据共享;

为了提高存取效率,改善性能。

Access的优点:

(1)存储方式简单,易于维护管理,Access的对象有表、查询、窗体、报表、页、宏和模块,以上对象都存放在后缀为(mdb或accdb)的数据库文件中,便于用户的 *** 作和管理。

(2)面向对象 Access是一个面向对象的开发工具,这种基于面向对象的开发方式,使得开发应用程序更为简便。

(3)界面友好、易 *** 作,Access是一个可视化工具,是风格与Windows完全一样,用户想要生成对象并应用,只要使用鼠标进行拖放即可,非常直观方便。系统还提供了表生成器、查询生成器、报表设计器以及数据库向导、表向导、查询向导、窗体向导、报表向导等工具,使得 *** 作简便,容易使用和掌握。

(4)集成环境、处理多种数据信息,Access基于Windows *** 作系统下的集成开发环境,该环境集成了各种向导和生成器工具,极大地提高了开发人员的工作效率,使得建立数据库、创建表、设计用户界面、设计数据查询、报表打印等可以方便有序地进行。

(5)Access支持ODBC(开发数据库互连,Open Data Base Connectivity),利用Access强大的DDE(动态数据交换)和OLE(对象的联接和嵌入)特性,可以在一个数据表中嵌入位图、声音、Excel表格、Word文档,还可以建立动态的数据库报表和窗体等。Access还可以将程序应用于网络,并与网络上的动态数据相联接。利用数据库访问页对象生成HTML文件,轻松构建Internet/Intranet的应用。

(6)支持广泛,易于扩展,d性较大 能够将通过链接表的方式来打开EXCEL文件、格式化文本文件等,这样就可以利用数据库的高效率对其中的数据进行查询、处理。还可以通过以Access作为前台客户端,以SQL Server作为后台数据库的方式(如ADP)开发大型数据库应用系统。

总之,Access是一个既可以只用来存放数据的数据库,也可以作为一个客户端开发工具来进行数据库应用系统开发;即可以开发方便易用的小型软件,也可以用来开发大型的应用系统。

Access的缺点:

ACCESS是小型数据库,既然是小型就有它的局限性(下面关于性能方面的缺点仅指用Access作为数据库的情况下,不包括用Access作为客户端前台,用SQL Server作为后台数据库的情况):

1 数据库过大,一般百M以上(纯数据,不包括窗体、报表等客户端对象)性能会变差。

2 虽然理论上支持255个并发用户,但实际上根本支持不了那么多,如果以只读方式访问大概在100个用户左右,而如果是并发编辑,则大概在10-20个用户。

3 记录数过多,单表记录数过百万性能就会变得较差,如果加上设计不良,这个限度还要降低。

4 不能编译成可执行文件(exe),必须要安装Access运行环境才能使用。

综上,所以access一般用作小型网站的数据库,以及小公司的数据库或应用软件开发。

不管是移动端开发,还是PC端开发,其实都有用mysql还是sqlserver这样的选择,今天就把我的观点给大家分享下:

1Sqlserver和MySQL都是关系型数据库,在整体功能上差异不算太大,都支持表、视图、函数、存储过程。

2就部署平台来收,sqlserver是微软出品,很显然他必须部署在windows系统上,而mysql既可以部署在windows系统上,也可以部署在linux系统上,就这点来说mysql优势更明显。

3就使用成本来说,mysql目前开发使用费用很小,而sqlserver作为微软的产品,应用与商业的话必须购买,而且价格也不菲。因此这点上mysql仍然占据优势。

4mysql短小精悍,学习上容易上手, *** 作相对简单,sqlserver作为一个大型的数据库系统,上手稍微复杂些,但有功能超强的图形界面工具进行 *** 作。目前mysql多应用与一些网站系统,即web页面要求响应速度较快的系统中。sqlserver多应用于一些行业领域信息化系统中。

5mysql的性能是相当出色的,但稳定性不如sqlserver好,而且sqlserver有很强大的备份恢复机制,对数据的完整性,容错性有较大的优势。sqlserver可以很方便的整库分离和附加,还有可以定制维护计划以及详细的日志信息。

因此,这两种数据库系统应该说各有优劣,可根据具体开发应用场景进行选择。

移动端开发(iOS,安卓)的话建议服务端用mysql了,部署在Linux环境,稳定性更强。

Access是一种桌面数据库,只适合数据量少的应用,在处理少量数据和单机访问的数据库时是很好的,效率也很高。但是它的同时访问客户端不能多于4个。access数据库有一定的极限,如果数据达到100M左右,很容易造成服务器iis假死,或者消耗掉服务器的内存导致服务器崩溃。

SQL Server是基于服务器端的中型的数据库,可以适合大容量数据的应用,在功能上管理上也要比Access要强得多。在处理海量数据的效率,后台开发的灵活性,可扩展性等方面强大。因为现在数据库都使用标准的SQL语言对数据库进行管理,所以如果是标准SQL语言,两者基本上都可以通用的。SQL Server还有更多的扩展,可以用存储过程,数据库大小无极限限制。

一、数据库中创建索引的优点

1、创建唯一性索引,保证数据库表中每一行数据的唯一性。

2、加快数据的检索速度,这也是创建索引的最主要的原因。

3、减少磁盘IO(向字典一样可以直接定位)。

4、通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。

5、加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。

二、数据库中创建索引的缺点

1、创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。

2、索引需要占用物理空间,特别是聚集索引,需要较大的空间。

3、当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。

扩展资料:

索引的功能

1、分解功能

把文献中的资料单元(如篇名、机构、短语、概念、物名、地名、书名、人名、字词、符号等)一一分解,这就是索引的分解功能。它是索引工作的起跑线和索引编纂的基础,没有对文献内容的这种分解功能,就没有索引。分解功能是索引作用于文献的特殊功能,是它和其他检索工作不同之处。

2、梳理功能

梳理功能是索引分解的后继。如果只有分解功能而没有梳理的功能,那么分解功能就没有价值。梳理是对资料单元的初分。如是字序,只要按笔划或音序归类即可;如是类序只要按大类归纳即可。就像小姑娘梳头,先把长发梳顺,而编什么辫子或梳什么发型则是下一步的要求了。

3、组合功能

把梳理后的资料单元按照分类的要求,严密地组织它们的类别层次以及类目下的专题和同类目下款目的序列关系;或按字序的要求,严密地把标目的结构正装 或倒装、考虑限定词对标目的限定和修饰的级数、或考虑字序和类序相结合的可能。

参考资料:

数据库索引-百度百科

优点:

极高的装载速度

(最高可以等于所有硬盘IO

的总和,基本是极限了)

适合大量的数据而不是小数据

实时加载数据仅限于增加(删除和更新需要解压缩Block

然后计算然后重新压缩储存)

高效的压缩率,不仅节省储存空间也节省计算内存和CPU。

非常适合做聚合 *** 作。

缺点:

不适合扫描小量数据

不适合随机的更新

批量更新情况各异,有的优化的比较好的列式数据库(比如Vertica)表现比较好,有些没有针对更新的数据库表现比较差。

不适合做含有删除和更新的实时 *** 作。

以上就是关于数据库索引有什么优缺点全部的内容,包括:数据库索引有什么优缺点、数据库的三极模式结构及其优缺点是什么、Access数据库是什么特点以及优缺点等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/10187353.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存