浅析基于B/S模式信息系统数据库优化

2018-04-12 16:20李隽
电子元器件与信息技术 2018年7期
关键词:字段语句信息系统

李隽

(内江职业技术学院 信息技术系,四川 内江 641002)

0 引言

随着Internet技术的急速发展,基于B/S模式信息管理系统在各行业的运用也越来越广泛。数据库作为信息系统装载信息的载体,它够有效地对数据进行作存储、管理和使用。它是保障信息技术系统能够正常运转的必备条件。针对基于B/S模式信息管理系统,用户往往是通过网络去访问数据库,存在大量用户并发使用。这也使得基于B/S的系统在数据库响应效率上会较C/S系统有更进一步的要求[1-2]。

1 数据库运行中的问题

1.1 并发访问运行效率低

无论哪种模式的信息系统,往往存在大量用户同时访问的情况。相比之下,基于B/S模式信息系统用户往往通过网络访问数据库,这会使得并发请求剧增。数据库响应效率往往会受到影响,有时甚至可能产生系统崩溃。

1.2 硬件资源消耗极大

系统开发之初,我们设计数据库往往更多的去强调的是功能的实现。忽略了对数据库的优化。等到系统真正投入运行之后再去考虑提高系统应性能。只能更多的通过对硬件资源进行升级,这样直接造成硬件资源消耗大,反而会花费更多的人力,财力去解决问题[3]。

1.3 应用程序源码复杂

sql语句有不同的写法。在性能上差异很大。这也会直接影响系统运行的效率。复杂的代码,可读性差,后期维护费时费力。

2 数据库设计优化

数据库的优化通常可以通过对数据库设计、网络硬件,操作系统,数据库参数及应用程序优化来进行[4-6]。

2.1 配置优化

数据库管理系统在设计使用过程中提供了大量的系统配置参数。例如:缓冲区、内存分配、物理块的大小、文件大小、增量大小等等一般在建立数据库是系统都提供了默认的参数值。但是应该根据具体系统不同,具体的应用环境不同,做出适当的调整以达到性能最优[7]。

2.2 字段优化

数据库在设计的过程当中,应遵守规划规范化设计的三范式原则。字段的设计,类型的选取,字段完整性应该尽量优化。

主键的设置最好和业务无关,针对存在两个以上键的表最好选用小的字段为主键,另外,针对合主键,字段的次序也很重要,一般重复率低、单独或者查询可能性大的字段会放置在靠前的位置,便于提高查询效率速度。

另外,为字段设置数据类型时,多种数据类型均可表示的字段则尽量选用长度少的数据类型进行设计,数值类型和字符类均可表示时尽量使用数据类型。除此以外,为避免影响数据迁徙,设计中自增字段也应慎用。

2.3 适当设置索引

索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构。适当合理的构建索引,是数据库优化的手段之一[8]。

在查询的过程中,构建唯一索引可以确保数据唯一性,加快数据的检索速度,加速表和表之间的连接并显著地减少查询当中的分组和排序的时间。

构建索引时,首先选择查询和表连接中频繁使用的属性列,一般主键和外键大部分是这样的属性列。所以,选用更新少、查询语句中出现频繁的列构建索引。例如:学生表中学号、身份证号字段。

但是索引的建立在增加查询的速度的同时也降低了数据更新的速度,因为新的数据不仅要增加到表中也要增加到索引中。另外,创建索引还需要占用额外的物理磁盘空间,而维护索引需要耗费时间,并且这种时间和索引数量的成正比。所以因此对于很少作为查询条件使用的字段,经常更新的字段以及字段值少分布严重不均匀的字段都应当避免将其设置成索引[9]。

2.4 物理优化

数据库中的数据,最终存储在物理磁盘上。可以通过以下方法对数据库进行物理设优化,达到存取时间的高效空间利用率高,并保证数据安全。

2.4.1 分离数据库内容

根据数据库中数据内容被应用程序使用的情况将数据库分为的易变部分和稳定部分。有效提高数据的访问和使用效率

2.4.2 分开存放文件

将一个完整信息系统中的数据库系统文件和数据库管理系统文件分别存放在不同位置达到优化存储的效果。

2.4.3 使用临时表和视图

在主表中数据不会频繁修改的情况下将一个表所包含的子集重新进行排序,并创建临时表。适当运用这些过渡临时表有助于避免多种排序操作,可减少系统输入输出操作,减少查询工作量,加速查询。

3 sql语句优化

如果说前面的优化能解决数据库40%的效率问题,那么剩下的60%来源于对应用程序的优化。对程序源代码的优化往往涉及到对程序逻辑的改变,这样会加大系统的时间成本和风险,而且对数据库性能的提升收效甚微。相比之下,sql语句是对数据库进行操作的唯一途径。因此对sql语句的优化无疑成为了提升数据库系统的性能的最佳选择。

3.1 合理的使用各种操作符

在SQL中,同一功能往往可以由不同的操作符实现,但执行的效率却大相径庭,因此,合理的使用各种操作符也能提高系统性能。比如:

3.1.1 使用not null操作符

数据库中,含null值的字段是不能构建索引的,即使对该字段建立了索引,只要某行上出现null值,索引也不能使用。此时可将空字段用not null或者默认值替代,便于提高效率。

3.1.2 正确使用like通配符

like是使用通配符进行模糊查询的语句,里面的通配符可任意组合,产生多个查询结果,但使用格式不同则会影响性能。如stuname like ‘%张三%’和stuname like ‘张三%’。若stuname字段构建有索引,则查询时时,前者不会使用数据库索引,而后者则会使用数据库索引[10]。

3.1.3 少用union操作符

在表合并中,union操作符是用来合并查询结果的。执行该操作,先获取两个查询结果,在对结果进行去重复记录,排序等形成新的结果集,最后返回结果集。但一旦查询结果数据量大,合并起来,执行效率会受到明显的影响。

3.2 where子句中不做函数计算

数据库操作时,where子句若包含函数计算,那该行索引无法使用,势必会触发全表记录逐行扫描,严重影响运行效率。

3.3 尽量少用selelct *

selelct *提取所有字段所需容量大,执行效率低。使用查询时,尽量根据系统需要设置查询的详细字段,提高查询效率。

3.4 其他优化

除此之外正确合理的使用簇,建立索引表,散列表索引等逻辑结构也可以加快系统的检索效率。从而到达提高系统运行效率。

4 结论

各种基于B/S模式的信息系统在设计和建立数据库时,必须充分考虑到系统本身的功能和性能需求,结合实际情况,建立符合用户需求的数据库。优化数据库是提高系统性能的必不可少的环节之一。一个B/S模式的信息系统并发业务数据的量大,如果对当中的数据库优化不够,就需要消耗更多的硬件资源来维护和满足系统的运行。因此,优秀的数据库优化将为整个业务系统执行效率带来很大的提升,减少数据库死锁的风险,降低数据库维护的成本。

猜你喜欢
字段语句信息系统
图书馆中文图书编目外包数据质量控制分析
企业信息系统安全防护
重点:语句衔接
基于区块链的通航维护信息系统研究
信息系统审计中计算机审计的应用
基于SG-I6000的信息系统运检自动化诊断实践
CNMARC304字段和314字段责任附注方式解析
无正题名文献著录方法评述
如何搞定语句衔接题
关于CNMARC的3--字段改革的必要性与可行性研究