APP下载

基于MySQL数据库的优化

2021-02-18翁春荣

科学与生活 2021年30期

翁春荣

摘要:MySQL各项运行指标一直是衡量数据库性能的关键因素。当前网络环境下数据总量在持续增长,对数据库查询的需求也不断加大。响应时间提出了更严格的要求。针对当前网络流行的开源数据库MySQL,分析了执行SQL查询语句的实现过程,在此基础上,提出了几种切实可行的性能优化方法,保证了SQL语句执行的正确性和准确性效率。

关键词:MySQL;数据库切分;索引;

一、引言

在5G与社区网站、微博和抖音融合的时代相关动态实时信息所占比例越来越大,网站应用也越来越广泛高并发、高流量、大数据量等问题也成为互联网时代的焦点特征。数据库作为网站存储的核心,有其优化问题它已成为各大门户网站关注的焦点。在各种数据库中MySQL因其低成本和开源而被许多网站开发被爱的人。在2019年,techtarget数据库网站根据管理优先权对中国数据管理做了调查,结果显示45.5%的用户表示愿意搬到MySQL数据库平台。

随着企业信息化建设的深入,数据库管理系统日益成为公司和大型企业的核心IT系统,数据库管理系统已成为支撑应用系统的核心软件。随着数据库技术的发展,出现了许多成熟的商业数据库管理系统,如Oracle、lnformix、Sybase、SQLServer等待但是,目前国内数据库产品基本上还是空白。为了培养未来的独立知识,国内产权数据库必须有一定的技术积累。在许多公开场合在源数据库产品中,MySQL是一款优秀的产品,MySQL的InnoDB引擎已经完成,它完全支持事务,具有优异的性能,并支持行级锁。InnoDB引擎的代码结构,非常适合于研究和分析。另外,MySQL也是非常实用和广泛使用的家庭组。

一方面,MySQL数据库的优化是基于满足用户的需求,走出系统瓶颈,提升MySQL系统服务整体性能。另一方面,合理的结构设计和参数调整,提高系统对用户操作的响应速度同时,应尽可能节省系统资源,以便能够提供更大的系统负载能力。优化指标、表格结构设计、参数配置等。它使数据库吞吐量更强,响应更快。建议在MySQL中使用使用showstatus语句查询一些MySQL数据库服务器的状态消息。

二、MySQL的结构优化

因为MySQL数据库是基于行(row)存储的,数据库操作IO以页面(块)的形式执行,处理过程相同需要访问的页面越少,IO操作的数量就越少,直接访问也就越少提高系统性能。

(一)字符优化

字符集直接决定了MySQL中数据的存储和编码方式不同的字符集用于表示的内容,这将占用很大的空间差异。如果选择使用适当的字符集,则可以尽可能减少数据量减少IO操作的数量。

(二)数据类型优化

最耗时的数据库操作是I/O处理。大多数数据库操作超过90%的时间花在IO读写上。最小化IO读写它可以大大提高数据库操作的性能。字段类型的优化主要适用于记录数量大、数据量大的情况对于大型场景,优化的数据类型设置可以有效地节省存储成本和成本IO处理速度。例如,尽量不要对数字类型使用double,而不仅仅是存储同时,也会出现精度问题。

(三)数据储存优化

当数据表中存在文本类型或大型varchar类型时如果大多数阅读和写作不需要这个领域,我们应该将其拆分为单独的表,以减少公共数据占用的存储空间,空间这样做的优点是每个数据块中可以存储的数据块的数量大大增加,这不仅可以减少物理I/O的数量,还可以大大提高内存中的缓存命中率。

三、MySQL的查询优化

通过分析查询语句,您可以了解查询语句的执行情况并找到找出查询语句的执行瓶颈,然后优化查询。可以使用MySQL来提取提供的解释和描述语句用于分析查询语句的执行。

(一)索引对查询速度的影响

MySQL可以通过为数据表设计合理的索引来提高性能查询速度快。在使用索引的过程中,还需要注意一些情况。

1.使用LIKE关键字的查询语句

在使用LIKE关键字的查询语句中,如果匹配字符串的第二部分,其中一个字符为“%”,索引将不起作用。只有“%”不在第一个位置该索引仅在以下情况下有效。

2.使用多列索引的查询语句

可以在MySQL中为多个字段编制索引。一个索引可以包括16个领域。对于多列索引,这些字段仅在查询条件中使用仅当第一个字段为空时才使用索引。

3. 使用or关键字查询语句

查询语句的查询条件中只有or关键字,or前后有两个关键字.只有当条件中的所有列都是索引时,才会在查询中使用索引,不要使用索引否则查询将失败。

(1)优化子查询

MySQL子查询可以嵌套在select语句中,子查询可以是完整的。这是一个SQL操作,逻辑上需要多个步骤才能完成。虽然它可以检查查询语句灵活,但执行效率不高。执行子查询时,MySQL将为内部查询的结果创建一个临时表,并从临时表生成外部查询语句查询记录从查询表中获取,查询后临时表被撤销。因此,查询速度会受到影响。

(2)优化插入记录速度

在插入记录操作期间影响插入速度的主要因素。根据这些情况,应该有索引、唯一性检查、一次插入的记录数等。在这种情况下,可以单独进行优化。MyISAM引擎表的常用优化方法如下:禁用索引。将记录插入非空表时,MySQL将根据表检索记录为插入的记录编制索引。如果插入大量数据,索引将降级插入速度慢。要解决此问题,可以在插入记录之前禁用该记录插入数据后,使用索引打开索引。禁用唯一性检查。在插入数据时,MySQL会记录插入的记录行唯一性检查。此唯一性检查将降低插入记录的速度。通过为了减少这对查询速度的影响,可以在插入记录之前禁用它唯一性检查在插入记录后开始。禁用外键检查。您可以在插入数据之前禁用外键查询,数据插入完成后,将恢复外键检查。禁止自动提交。插入数据前禁止自动提交的事务数数据导入完成后,执行恢复自动提交的操作。

四、MySQL的服务器环境优化

通过优化MySQL的参数,可以提高资源利用率,从而提高性能高MySQL服务器性能的目的。

key\buffer\usize:指示索引缓冲区的大小。添加索引缓冲区冲洗可以更好更快地处理索引。但是,如果该值太大,则会导致操作系统频繁更改页面,这会降低系统性能。

tablecahe:表示同时打开的表数。值越大,数字越大同时打开的表越多。但是,过多的開放表会影响系统化对查询缓存大小:查询缓冲区的大小。使用查询缓冲区查询区域可以提高查询速度。该方法适用于修改操作少、执行频繁的情况相同查询操作的行。innodb\uBuffer\uPool\uSize:表示innodb类型的表和索引最大缓存值越大,查询速度越快。

max_uuConnections:到数据库的最大连接数。这个值太高了内存资源被浪费,这可能会导致MySQL服务器假死。

五、总结

虽然有多种数据库优化方法,但面对大流量高并发数据有时仍然不能很好地解决问题,难以解决文件的读写速度在很大程度上限制了数据库。但上述优化方法仍能提高其服务质量服务表现。

参考文献

[1]苏云,胡勇,苏芳艳.基于数据库和人工智能的船舶航行性能设计和优化[J].舰船科学技术,2021,43(20):46-48.

[2]刘杰逾.SQL数据库性能优化必要性及其优化策略分析[J].电脑编程技巧与维护,2021(07):104-105.

[3]刘丽.A/D转换器在船舶大规模数据库优化管理中的应用[J].舰船科学技术,2021,43(10):136-138.