资讯专栏INFORMATION COLUMN

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

Chao / 1633人阅读

优化概述

数据库性能取决于数据库级别的几个因素,比如表、查询和配置设置,这些软件构造导致了硬件级别的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服务器忽略已注释的关键字。


文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/49354.html

相关文章

  • MySQL参考手册(目录)

    MySQL™ 参考手册 此文档分别记录了MySQL 8.0到8.0.19,以及基于NDB 8.0版到8.0.18-ndb-8.0.18的NDB Cluster版本。它可能包括尚未发布的MySQL版本功能的文档,有关已发布的版本的信息,请参阅MySQL 8.0发行说明。 MySQL 8.0的特性。本手册描述的特性没有包含在每个MySQL 8.0版本中,此类特性可能不包含在许可给你的MySQL 8.0...

    habren 评论0 收藏0
  • MySQL参考手册MySQL程序概述

    MySQL程序概述 MySQL安装中有许多不同的程序,本节将对它们进行简要概述,除了NDB集群程序之外,后面的部分提供了每个程序的更详细描述,每个程序的描述都指示其调用语法及其支持的选项。 大多数MySQL发行版都包含所有这些程序,除了那些特定于平台的程序(例如,服务器启动脚本不用于Windows)。RPM发行版更加专门化,一个RPM用于服务器,另一个RPM用于客户机程序,等等。可能你的发行版不包...

    ctriptech 评论0 收藏0
  • MySQL参考手册MySQL数据库管理系统概述

    MySQL数据库管理系统概述 MySQL是最受欢迎的开源SQL数据库管理系统,由Oracle Corporation开发、分发和支持。 什么是MySQL? MySQL网站(http://www.mysql.com/)提供有关MySQL软件的最新信息。 MySQL是一个数据库管理系统 数据库是数据的结构化集合,它可以是从简单的购物清单到图片库或公司网络中的大量信息。要添加、访问和处理存储在计算机数据...

    ZweiZhao 评论0 收藏0
  • MySQL参考手册优化SQL语句)

    优化SQL语句 数据库应用程序的核心逻辑是通过SQL语句执行的,无论是直接通过解释器发出,还是通过API在后台提交。本节中的调优指南有助于加快各种MySQL应用程序的速度,这些指导原则包括读取和写入数据的SQL操作、通常SQL操作的幕后开销以及在特定场景(如数据库监视)中使用的操作。 优化SELECT语句 以SELECT语句的形式的查询执行数据库中的所有查找操作,优化这些语句是首要任务,无论是为动...

    adie 评论0 收藏0
  • MySQL参考手册(语法约定)

    语法约定 当显示要在特定程序内执行的命令时,命令前面显示的提示符指示要使用哪种命令。例如,shell>表示从你登录的shell执行的命令,root-shell>类似,但应该以root身份执行,mysql>表示从mysql客户端程序执行的语句: shell> type a shell command here root-shell> type a shell command as root here...

    XBaron 评论0 收藏0

发表评论

0条评论

Chao

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<