MySQL中的性能调优

MySQL是一个开放源代码数据库应用程序,可为大量数据创建有意义的结构和可访问性。但是,大数据会带来性能问题。本文将为您提供MySQL技巧中的性能调优,以提高其[性能]。

确保您正在使用最新的MySQL版本

如果您是旧数据库或较旧的数据库,则可能不可行。但是,如果是这样,请检查[最新版本的MySQL]并升级到最新([最新的NoSQL数据库]

较新版本默认情况下具有性能改进,从而使您无需再为MySQL问题中的常见性能调整找到更多的解决方案。通常最好使用默认或本机MySQL性能改进,而不是脚本或配置文件。

选择基于MyISAM的InnoDB

MyISAM的高级功能少于InnoDB。总体而言,MyISAM的效率较低,而本机优化增强功能较少。例如,InnoDB有一个聚簇索引,其中数据包含在页面和连续的物理块中。如果某个值太大而无法容纳在页面上,则InnoDB会将其迁移到其他位置,为其值编制索引-相关数据将保留在硬盘驱动器上的同一位置,从而缩短了检索时间。

硬件资源:MySQL中的系统级性能调整

处理器

处理器的速度显示了计算机的速度。该顶部命令会给你洞察每个进程的CPU和内存使用情况-换句话说,是如何被使用的资源。使用MySQL时,请注意该特定进程的使用百分比。太高了,瓶颈很可能是您的机器,这意味着需要对其进行升级。

记忆

调整或改善内存将增加MySQL服务器中的总RAM并提高性能。转到服务器配置部分,您将在其中看到用于优化内存的缓冲池大小命令。

硬盘

如果您使用HDD进行存储,则升级到固态驱动器可以提高性能。注意与其他资源相比,MySQL正在使用多少磁盘。如果基本上不成比例,请添加更多存储空间。诸如sar或iotop(sysstat软件包)之类的工具可用于监视磁盘输入与输出速率。

网络

网络带宽的瓶颈会导致数据包丢失,延迟甚至完全停机。您应该能够提供正常的数据库流量。

MySQL中的软件级性能调优

调整脚本可以实现更高效的数据库查询,MySQL配置文件和最佳的数据库设计。

专家提示:调整软件配置可能会导致更多问题,而不是解决的问题。我建议一次只进行少量更改,每次都进行测试,因为这样可以更轻松地[识别问题]并总体评估对性能的影响。

代码剖析

使用诸如[Stackify Prefix之]类的代码分析工具,可以在编写代码时对代码进行概要分析和测试。通过在编写代码时验证代码的性能,Prefix用户可以将更好的代码推送到测试中,从生产中获得更少的支持票,并拥有更快乐的开发经理。前缀的概要分析和跟踪功能甚至可以帮助最有经验的开发人员找到慢速的SQL查询,隐藏的异常等等。

发现性能不佳的SQL查询,ORM生成的查询以及以前未知的瓶颈。跟踪每个SQL调用参数,受影响的记录和下载时间。前缀还可以轻松发现可怕的N + 1模式。前缀涵盖了您的整个技术堆栈,并且在Windows和Mac操作系统上均支持.NET,Java,PHP,Node.js,Python和Ruby。

查询

查询数据库时,要求其检索与您输入的值匹配的特定数据。警惕可能在后台耗尽表格的自动查询。使用show processlist函数密切关注它们,并杀死不需要的函数。一些种植者比其他种植者花费更长的时间。如果允许不必要的MySQL进程运行,则这些进程将编译并阻止其他用户访问和修改数据。

自动性能改善

我们对前三项自动性能改进工具的建议是MySQLTuner,tuning-primer和PHPMyAdmin Adviser。第一个工具MySQLTuner最适用于现代MySQL数据库。它找到可以优化的部分,建议进行调整,并且与MySQL 8.x兼容。尽管Tuning-primer较旧,是MySQL 5.5至5.7版,但其他两个功能也具有类似的功能。

服务器调整

同样,请确保仅在此处进行增量更改。我们将调整/etc/mysql/my.cnf文件。

**innodb_buffer_pool_size **—

该命令配置将系统内存划分为数据库的数据缓存。数据块越大,值应越大。进行更改时,请注意有多少RAM用于其他系统资源。

**innodb_io_capacity **—

这显示了存储设备的输入/输出速率。硬限制是您使用的任何类型的存储驱动器。可以进行调整以更好地将数据库与硬件对齐

**query_cache_size **—

这设置了未决MySQL查询的缓存大小。我们建议从小开始,大约10MB,然后再增加到100-200MB,但不要再增加。如果查询太多,并且收到“等待缓存锁等待”消息,请尝试使用EXPLAIN函数来评估单个查询以及优化每个查询的方法。

**max_connection **—

这显示了数据库中启用的连接数。为了克服“连接过多”的错误,请增加此数字。

解释

现代的MySQL数据库包括解释功能。如果在查询开始时使用此表达式,则查询将被读取和评估。如果表达式效率低下或结构出现异常,EXPLAIN可以帮助您查明它们。然后,您可以调整查询短语,以消除性能消耗和不必要的表扫描。

JOIN,UNION,DISTINCT

虽然“内部联接”是要使用的首选类型,但在适用时也应使用联接,并集和不重复。外部联接在相关列之外搜索无关的数据。在某些情况下,可能需要数据,但是这对于搜索不相关的数据会造成不必要的性能消耗。

查询有时涉及DISTINCTUNION命令。再一次,如果需要,请使用它们,但请注意,它们需要从数据库中进行额外的读取和排序。如果不需要它们,最好选择一个更有效的命令。

索引可能有用

SELECT ... WHERE结构是常用的数据库中使用。他们处理过滤,检索和评估结果。为连接的表创建一个小的索引集是一种有用的结构,它允许将查询指向索引,以便在运行时加快索引的速度。

避免在查询谓词中使用函数和通配符

避免在查询谓词中使用函数。例如,如果要创建一个UPPER表示法(创建一个函数),这将迫使您在SELECT操作中进行操作。按此顺序工作会使查询的工作量加倍。

使用通配符也是如此—通配符 表示零个或多个字符。例如,表达式' %345 '包含所有以345结尾的值。%代表该字符串之前出现的任何字符,包括不存在任何后续字符。这会强制搜索对所有这些可能性进行全表扫描。

使用**SELECT ***操作时,请记住,在扫描特定列时,您可能需要缩短搜索查询时间,因为并非所有数据库列都在被扫描。

ORDER BY由所选择的列表达式排列的结果。这也适用于同时排序两列。但是,两列均应按升序或降序均匀排序。如果排序不均匀,将会降低性能。为此添加索引以加快排序。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,590评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,808评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,151评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,779评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,773评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,656评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,022评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,678评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,038评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,756评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,411评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,005评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,973评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,053评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,495评论 2 343

推荐阅读更多精彩内容