广告
返回顶部
首页 > 资讯 > 数据库 >MySQL-性能优化
  • 353
分享到

MySQL-性能优化

mysql性能优化数据库 2023-08-17 11:08:43 353人浏览 独家记忆
摘要

有志者,事竟成 文章持续更新,可以微信搜索【小奇JAVA面试】第一时间阅读,回复【资料】获取福利,回复【项目】获取项目源码,回复【简历模板】获取简历模板,回复【学习路线图】获取学习路线图。 文章目录 前言一、优化简介二、优化

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

在这里插入图片描述


前言

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

一、优化简介

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

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

show status like 'value';

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

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

二、优化查询

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

1、分析查询语句

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

explain语句的基本语法如下:

explain select 语句;

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

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

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

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

3、使用索引查询

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

查询语句中使用like关键字

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

查询语句中使用多列索引

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

查询语句中使用or关键字

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

4、优化子查询

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

三、优化数据库结构

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

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

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

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

2、增加中间表

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

3、增加冗余字段

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

4、优化插入记录的速度

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

禁用索引

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

alter table 表名 disable keys;

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

alter table 表名 enable keys;

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

禁用唯一性检查

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

set unique_checks=0;

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

set unique_checks=1;

优化insert语句

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

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

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

分析表

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

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

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

检查表

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

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

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

优化表

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

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

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

四、优化mysql服务器

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

1、优化服务器硬件

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

2、优化mysql的参数

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

五、总结

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

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

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

来源地址:https://blog.csdn.net/weixin_44096133/article/details/127235986

您可能感兴趣的文档:

--结束END--

本文标题: MySQL-性能优化

本文链接: https://www.lsjlt.com/news/372679.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL-性能优化
    有志者,事竟成 文章持续更新,可以微信搜索【小奇JAVA面试】第一时间阅读,回复【资料】获取福利,回复【项目】获取项目源码,回复【简历模板】获取简历模板,回复【学习路线图】获取学习路线图。 文章目录 前言一、优化简介二、优化...
    99+
    2023-08-17
    mysql 性能优化 数据库
  • mysql性能优化(二)
                          mysql性能优化(二)query cache的限制...
    99+
    2022-10-18
  • MySQL 性能优化小结
    基础概念简述 锁 数据库通过锁机制来解决并发场景 — 共享锁(读锁)和排他锁(写锁)。读锁是不阻塞的,多个客户端可以在同一时刻读取同一个资源;写锁是排他的,并且会阻塞其他的读锁和写锁。 简单提下乐观锁和悲观锁: 乐观锁:通常用于...
    99+
    2020-11-11
    MySQL 性能优化小结
  • 如何优化MYSQL性能
    本篇文章给大家分享的是有关如何优化MYSQL性能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。  1. MySQL性能优化简介  在Web应用...
    99+
    2022-10-18
  • mysql-查询性能优化
    不要取出全部列,取出全部列,会让优化器无法完成索引覆盖扫描这类优化,还会为服务器带来额外的I/O、内存和CPU的消耗。应该严格禁止SELECT * 的写法。MySQL使用如下三种方式应用WHERE条件,从好到坏依次...
    99+
    2021-02-18
    mysql-查询性能优化
  • MySQL如何优化性能
    本文小编为大家详细介绍“MySQL如何优化性能”,内容详细,步骤清晰,细节处理妥当,希望这篇“MySQL如何优化性能”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。- MySQL服...
    99+
    2022-10-19
  • MySQL Limit性能优化及分页数据性能优化详解
    MySQL Limit可以分段查询数据库数据,主要应用在分页上。虽然现在写的网站数据都是千条级别,一些小的的优化起的作用不大,但是开发就要做到极致,追求完美性能。下面记录一些limit性能优化方法。 Lim...
    99+
    2022-10-18
  • MySQL优化之二:My SQL Server性能优化
    1 安装优化一般说来,系统功能越多越复杂,性能就会越差。因此在编译安装MySQL时,仅安装需要的功能模块。如存储引擎、需要的字符集等,让系统尽可能的简单。2 日志设置优化由于日志记录直接带来的性能损耗就是数...
    99+
    2022-10-18
  • MySQL优化 - 性能分析与查询优化
    MySQL优化 - 性能分析与查询优化    优化应贯穿整个产品开发周期中,比如编写复杂SQL时查看执行计划,安装MySQL服务器时尽量合理配置(见过太多完全使用默认配置安装的情况),根...
    99+
    2022-10-18
  • MySQL高性能优化指南
    作者:禅与计算机程序设计艺术 1.简介 随着互联网公司网站流量的逐渐增长,数据库服务器的负载也日益增加。如何提升MySQL数据库服务器的性能、节省硬件成本、提升网站的响应速度、节省运营成本是一个重要...
    99+
    2023-10-09
    自然语言处理 人工智能 语言模型 编程实践 开发语言 架构设计
  • mysql性能优化总结(三)
    mysql体系结构   插件式存储引擎,将数据的查询和存储相分离.每一款存储引擎都有各自的优缺点.可以灵活选用   架构: 客户端 -> mysql服务层 -> 存储引擎层   存储引擎是针对表,不是针对库,同一库中的不同的表,可以使用不同...
    99+
    2020-07-17
    mysql性能优化总结(三) 数据库入门 数据库基础教程
  • mysql性能及优化探讨
    最近在公司内部进行了一次mysql性能和优化相关的内部分享,放在这里备忘,同时也希望能跟大家交流相关的话题,整理自书本及网络上的文章,感谢相关内容的作者在百度文库上有,可以点击这里 附件:htt...
    99+
    2022-10-18
  • MYSQL(四)查询性能优化
    优化数据访问1.是否向数据库请求了不需要的数据解决方式:A. 查询后加limitB. Select后写需要的列而不是*2. 是否扫描了额外的数据数据库的访问方式速度由...
    99+
    2022-10-18
  • mysql性能优化的示例
    小编给大家分享一下mysql性能优化的示例,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!历史很久远的一篇文章了,不记得是从哪里记...
    99+
    2022-10-18
  • MYSQL性能优化以及建议
    业务代码组合逻辑后进行数据库操作,如根据波次进行库存分配,可以将波次里面的订单所有明细进行分组,然后匹配库存。2、将大字段、不常用字段放置到扩展表中,将经常使用(状态、数量、编号)放到一张表中,预防经常查询所有字段带来很多网络流量开销。3...
    99+
    2021-05-06
    MYSQL性能优化以及建议
  • 详解GaussDB for MySQL性能优化
    目录背景灵感来源于生活快递的优化原理GaussDB(for MySQL)的优化实际测试背景 我们先来看看MySQL 8.0的事务提交的大致流程 以上流程,是MySQL8.0对WAL原则的一种实现,这个流程意味着,任...
    99+
    2022-05-18
    mysql gaussdb mysql 性能优化
  • 21条最佳MySQL性能优化
    1. 为查询缓存优化你的查询 大多数的MySQL服务器都开启了查询缓存。这是提高性最有效的方法之一,而且这是被MySQL的数据库引擎处理的。当有很多相同的查询被执行了多次的时候,这些查询结果会被放到一个缓存中,这样,...
    99+
    2022-05-16
    mysql 优化
  • MySQL性能优化技巧分享
    MySQL性能优化 在互联网公司MySQL的使用非常广泛,大家经常会有MySQL性能优化方面的需求。整理了一些在MySQL优化方面的实用技巧。 Schema与数据类型优化 整数通常是标识列最好的选择,因为它...
    99+
    2022-05-20
    MySQL 性能优化 MySQL 优化
  • MySQL性能优化如何实现
    这篇文章将为大家详细讲解有关MySQL性能优化如何实现,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一般来说,要保证数据库的效率,要做好以下四个方面的工作:数据库表设计S...
    99+
    2022-10-18
  • mysql的性能该如何优化
    下文给大家带来有关mysql的性能该如何优化内容,相信大家一定看过类似的文章。我们给大家带来的有何不同呢?一起来看看正文部分吧,相信看完mysql的性能该如何优化你一定会有所收获。文件系统: 优化...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作