定制开发小程序MySQL-性能优化

有志者,事竟成
定制开发小程序文章持续更新,定制开发小程序可以微信搜索【小奇JAVA面试】定制开发小程序第一时间阅读,回复【资料】获取福利,回复【项目】定制开发小程序获取项目源码,回复【简历模板】定制开发小程序获取简历模板,回复【定制开发小程序学习路线图】定制开发小程序获取学习路线图。

文章目录


前言

定制开发小程序性能优化是通过某些有定制开发小程序效的方法提高mysql定制开发小程序数据库的性能。定制开发小程序性能优化的目的是为了使mysql定制开发小程序数据库运行速度更快、定制开发小程序占用的磁盘空间更小。定制开发小程序性能优化包括很多方面,定制开发小程序例如优化查询速度、定制开发小程序优化更新速度和优化mysql服务器等。

一、优化简介

优化mysql定制开发小程序数据库是数据库管理员的必备技能。通过不同的优化方式达到提高mysql数据库性能的目的。

数据库管理员可以使用show status语句查询mysql数据库的性能。语法形式如下:

show status like 'value';
  • 1

其中,value参数是常用的几个统计参数。这些常用参数介绍如下。

connections:连接mysql服务器的次数;
uptime:mysql服务器的上线时间;
slow_queries:慢查询的次数;
com_select:查询操作的次数;
com_insert:插入操作的次数;
com_update:更新操作的次数;
com_delete:删除操作的次数。

二、优化查询

查询是数据库中最频繁的操作。提高了查询速度可以有效的提高mysql数据库的性能。

1、分析查询语句

通过对查询语句的分析,可以了解查询语句的执行情况。mysql中,可以使用explain语句和describe语句来分析查询语句。

explain语句的基本语法如下:

explain select 语句;
  • 1

通过explain关键字可以分析后面的select语句的执行情况。并且能够分析出所查询的表的一些内容。

2、索引对查询速度的影响

索引可以快速的定位表中的某条记录。使用索引可以提高数据库查询的速度,从而提高数据库的性能。

如果查询时不使用索引,查询语句将查询表中的所有字段。这样查询的速度会很慢。如果使用索引进行查询,查询语句只查询索引字段。这样可以减少查询的记录数,达到提高查询速度的目的。

3、使用索引查询

索引可以提高查询的速度。但是有些时候即使查询时使用的是索引,但索引并没有起作用。

1、查询语句中使用like关键字

在查询语句中使用like关键字进行查询时,如果匹配字符串的第一个字符为“%”时,索引不会被使用。如果“%”不是在第一个位置,索引就会被使用。

2、查询语句中使用多列索引

多列索引是在表的多个字段上创建一个索引。只有查询条件中使用了这些字段中第一个字段时,索引才会被使用。

3、查询语句中使用or关键字

查询语句只有or关键字时,如果or前后的两个条件的列都是索引时,查询中将使用索引。如果or前后有一个条件的列不是索引,那么查询中将不使用索引。

4、优化子查询

很多查询中需要使用子查询。子查询可以使查询语句很灵活,但子查询的执行效率不高。子查询时,mysql需要为内层查询语句的查询结果建立一个临时表。然后外层查询语句再临时表中查询记录。查询完毕后,mysql需要撤销这些临时表。因此,子查询的速度会受到一定的影响。如果查询的数据量比较大,这种影响就会随之增大。在mysql中可以使用连接查询来替代子查询。连接查询不需要建立临时表,其速度比子查询要快。

三、优化数据库结构

数据库结构是否合理,需要考虑是否存在冗余、对表的查询和更新的速度、表中字段的数据类型是否合理等多方面的内容。

1、将字段很多的表分解成多个表

有些表在设计时设置了很多的字段。这个表中有些字段的使用频率很低。当这个表的数据量很大时,查询数据的速度就会很慢。

对于这种字段特别多且有些字段的使用频率很低的表,可以将其分解成多个表。

2、增加中间表

有时需要经常查询某两个表中的几个字段。如果经常进行联表查询,会降低mysql数据库的查询速度。对于这种情况,可以建立中间表来提高查询速度。

3、增加冗余字段

设计数据库表时尽量让表达到三范式。但是,有时为了提高查询速度,可以有意识地在表中增加冗余字段。

4、优化插入记录的速度

插入记录时,索引、唯一性校验都会影响到插入记录的速度。而且,一次插入多条记录和多次插入记录所耗费的时间是不一样的。根据这些情况,分别进行不同的优化。

1、禁用索引

插入记录时,mysql会根据表的索引对插入的记录进行排序。如果插入大量数据时,这些排序会降低插入记录的速度。为了解决这种情况,在插入记录之前先禁用索引。等到记录都插入完毕后再开启索引。禁用索引的语句如下:

alter table 表名 disable keys;
  • 1

重新开启索引的语句如下:

alter table 表名 enable keys;
  • 1

对于新创建的表,可以先不创建索引。等到记录都导入以后再创建索引。这样可以提高导入数据的速度。

2、禁用唯一性检查

插入数据时,mysql会对插入的记录进行唯一性校验。这种校验也会降低插入记录的速度。可以在插入记录之前禁用唯一性检查。等到记录插入完毕后再开启。禁用唯一性检查的语句如下:

set unique_checks=0;
  • 1

重新开启唯一性检查的语句如下:

set unique_checks=1;
  • 1

3、优化insert语句

插入多条记录时,可以采取两种写insert语句的方式。第一种是一个insert语句插入多条记录。

5、分析表、检查表和优化表

分析表主要作用是分析关键字的分布。检查表主要作用是检查表是否存在错误。优化表主要作用是消除删除或者更新造成的空间浪费。

1、分析表

mysql中使用analyze table语句来分析表,该语句的基本语法如下:

analyze table 表名1 [,表名2...]
  • 1

使用analyze table分析表的过程中,数据库系统会对表加一个只读锁。在分析期间,只能读取表中的记录,不能更新和插入记录。analyze table语句能够分析innodb和myisam类型的表。

2、检查表

mysql中使用check table语句来检查表。check table语句能够检查innodb和myisam类型的表是否存在错误。而且,该语句还可以检查视图是否存在错误。该语句的基本语法如下:

check table 表名1 [,表名2...][option];
  • 1

其中,option参数有5个参数,分别是quick、fast、changed、medium和extended。这5个参数的执行效率依次降低。option选项只对myisam类型的表有效,对innodb类型的表无效。check table语句在执行过程中也会给表加上只读锁。

3、优化表

mysql中使用optimize table语句来优化表。该语句对innodb和myisam类型的表都有效。但是,optilmize table语句只能优化表中的varchar、blob或text类型的字段。optilmize table语句的基本语法如下:

optimize table 表名1 [,表名2...];
  • 1

通过optimize table语句可以消除删除和更新造成的磁盘碎片,从而减少空间的浪费。optimize table语句在执行过程中也会给表加上只读锁。

四、优化mysql服务器

优化mysql服务器可以从两个方面来理解。一个是从硬件方面来进行优化;另一方面是从mysql服务的参数进行优化。通过这些优化方式,可以提供mysql的运行速度。但是这部分的内容很难理解,一般只有专业的数据库管理员才能进行这一类的优化。

1、优化服务器硬件

服务器的硬件性能直接决定者mysql数据库的性能。例如,增加内存和提高硬盘的读写速度,可以提高mysql数据库的查询、更新的速度。

2、优化mysql的参数

内存中会为mysql保留部分的缓存区。这些缓冲区可以提高mysql数据库的处理速度。缓存区的大小都是在mysql的配置文件中进行设置的。

五、总结

这里的相关内容还没有整理完毕,文章后面持续更新,建议收藏。

文章中涉及到的命令大家一定要像我一样每个都敲几遍,只有在敲的过程中才能发现自己对命令是否真正的掌握了。

可以微信搜索【小奇JAVA面试】第一时间阅读,回复【资料】获取福利,回复【项目】获取项目源码,回复【简历模板】获取简历模板,回复【学习路线图】获取学习路线图。

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发