MySQL™ 参考手册(优化概述)

侯览
• 阅读 1099

优化概述

数据库性能取决于数据库级别的几个因素,比如表、查询和配置设置,这些软件构造导致了硬件级别的CPU和I/O操作,你必须将其最小化并尽可能提高效率。在研究数据库性能时,首先要学习软件方面的高级规则和指导原则,并使用壁钟时间测量性能。

典型用户的目标是从现有的软件和硬件配置中获得最佳的数据库性能,高级用户寻找机会来改进MySQL软件本身,或者开发自己的存储引擎和硬件设备来扩展MySQL生态系统。

在数据库级进行优化

使数据库应用程序快速运行的最重要因素是它的基本设计:

  • 表的结构是否正确?特别是,列是否具有正确的数据类型,每个表是否具有适合工作类型的列?例如,执行频繁更新的应用程序常常有很多表只有很少的列,而分析大量数据的应用程序通常只有很少的表有很多列。
  • 是否有适当的索引使查询高效?
  • 你是否为每个表使用了适当的存储引擎,并利用了所使用的每个存储引擎的优点和特性?特别是,选择事务性存储引擎(如InnoDB)或非事务性存储引擎(如MyISAM)对性能和可伸缩性非常重要。

    InnoDB是创建新表的默认存储引擎,在实践中,先进的InnoDB性能特性意味着InnoDB表通常比简单的MyISAM表表现得更好,特别是对于繁忙的数据库。
  • 每个表都使用适当的行格式吗?这种选择还取决于表使用的存储引擎,特别是,压缩表使用更少的磁盘空间,因此读写数据所需的磁盘I/O更少,压缩适用于所有使用InnoDB表的工作负载,也适用于只读MyISAM表。
  • 应用程序是否使用适当的锁定策略?例如,在可能的情况下允许共享访问,以便数据库操作可以并发运行;在适当的情况下请求独占访问,以便关键操作获得高优先级,同样,存储引擎的选择也很重要。InnoDB存储引擎可以在不需要你参与的情况下处理大多数锁定问题,从而提高数据库的并发性,减少代码的实验和调优量。
  • 所有用于缓存大小的内存区域都正确吗?也就是说,大到足以容纳频繁访问的数据,但又不会大到使物理内存过载并导致分页,要配置的主要内存区域是InnoDB缓冲池和MyISAM键缓存。

在硬件级别进行优化

随着数据库变得越来越忙,任何数据库应用程序最终都会遇到硬件限制,DBA必须评估是否可以调优应用程序或重新配置服务器以避免这些瓶颈,或者是否需要更多的硬件资源,系统瓶颈通常来自以下来源:

  • 磁盘查找,磁盘需要时间才能找到一段数据,对于现代磁盘,这一过程的平均时间通常低于10ms,所以理论上我们可以每秒进行100次搜索。对于新磁盘,这个时间提高缓慢,并且很难对单个表进行优化,优化查找时间的方法是将数据分布到多个磁盘上。
  • 磁盘读写,当磁盘处于正确的位置时,我们需要读取或写入数据。对于现代磁盘,一个磁盘至少可以提供10-20MB/s的吞吐量,这比查找更容易优化,因为你可以从多个磁盘并行读取。
  • CPU周期,当数据在主存时,我们必须处理它以得到我们的结果,与内存量相比,拥有较大的表是最常见的限制因素,但是对于小表,速度通常不是问题。
  • 内存带宽,当CPU需要超过CPU缓存容量的数据时,主内存带宽就会成为瓶颈,对于大多数系统来说,这是一个不常见的瓶颈,但是需要注意。

平衡可移植性和性能

要在可移植MySQL程序中使用面向性能的SQL扩展,可以在/*! */注释分隔符内的语句中封装特定于MySQL的关键字,其他SQL服务器忽略已注释的关键字。


点赞
收藏
评论区
推荐文章
Easter79 Easter79
3年前
systemtap使用:获取ssh登录的用户密码
一、Systemtap概述:        SystemTap是一个诊断Linux系统性能或功能问题的开源软件,对用户级和内核级代码提供了静态和动态跟踪的功能。Systemtap采用其他的内核框架做源:静态探针用tracepoints、动态探针用kprobes、用户级别的探针用uprobes。这些源也为perf、LTTng所用
面试字节跳动Java工程师该怎么准备?值得收藏!
性能调优影响MySQLServer性能的相关因素1.商业需求对性能的影响2.系统架构及实现对性能的影响3.Query语句对系统性能的影响4.Schema设计对系统的性能影响5.硬件环境对系统性能的影响MySQL数据库锁定机制1.MySQL锁定机制简介2.各种锁定机制分析3.合理利用锁机制优化MySQLMySQL数据库Que
Hailey88 Hailey88
4年前
Mysql高性能优化规范建议
(1)Mysql高性能优化规范建议(1)Mysql高性能优化规范建议数据库命令规范1.所有数据库对象名称必须使用小写字母并用下划线分割2.所有数据库对象名称禁止
Easter79 Easter79
3年前
TVM 学习教程
OpenVINO是intel针对intel的各硬件(CPU、Moviduis等)在deployment环节(inference)进行的性能优化的软件;TensorRT是NVIDIA针对NVIDIAGPU在deployment环节(inference)进行的性能优化的软件;deployment指的是如何将深度学习
Stella981 Stella981
3年前
JMeter 如何与 MySQL 进行整合测试
做性能测试定位瓶颈的时候,定位到是因为某些SQL语句的查询慢所影响的,此时我们提出优化方案,肯定希望验证下优化后的SQL,此时需要借助JMeter的JDBC请求,那么我们就需要学习JMeter如何与MySQL进行整合测试。环境准备除了JMeter外,还需要准备以下软件和Jar包:MySQL数据库服务
Wesley13 Wesley13
3年前
MySQL数据库的安装与使用
MySQL数据库概要一、MySQL数据库的概述二、MySQL数据库的搭建(重点)三、MySQL数据库软件的使用四、MySQL数据类型五、MySQL数据库数据的操作(重点)一、初识MySQL数据库1\.数据库的概述
Wesley13 Wesley13
3年前
Mysql用户与权限操作
1.用户与权限概述用户是数据库的使用者和管理者。MySQL通过用户的设置来控制数据库操作人员的访问与操作范围。服务器中名为mysqI的数据库,用于维护数据库的用户以及权限的控制和管理。MySQL中的所有用户信息都保存在mysql.user数据表中。根据my
子桓 子桓
1年前
Mac虚拟机 Parallels Desktop 19 一键激活安装教程
ParallelsDesktop还提供了强大的性能优化功能,包括智能调整资源分配、硬件加速和多线程处理,以确保虚拟机的运行效果最佳。此外,软件还支持高级网络设置和云服务的集成,使用户能够轻松访问和管理远程服务器和应用程序。另外,ParallelsDeskt
绣鸾 绣鸾
1年前
Geekbench 6 for Mac(系统性能检测工具)
是一款跨平台的系统性能测试软件,可以对处理器和内存等硬件进行评测,并提供了单核和多核两种测试模式。该软件适用于Windows、macOS、Linux和iOS等多种操作系统平台。Geekbench6测试可以帮助用户快速准确地了解自己设备的性能表现,包括CPU
绣鸾 绣鸾
1年前
Sensei for Mac(系统优化工具)
是一款功能强大的Mac优化软件,它可以帮助用户轻松地管理和优化Mac电脑性能。Sensei提供了多种功能,包括硬件监控、存储空间管理、CPU和GPU性能优化、应用程序管理、网络监控等。通过硬件监控功能,用户可以实时查看Mac电脑的CPU、GPU、内存和硬盘
DBCP一个配置,浪费了MySQL 50%的性能!
1.引言研究背景数据库性能的重要性数据库性能优化对于保证应用的响应速度和处理大量数据的能力至关重要。它可以显著减少查询时间,提高事务处理效率,降低硬件成本,并确保系统稳定性与可扩展性。优化后的数据库能够更好地服务于用户需求,增强客户满意度,对企业的长期发展