加入收藏 | 设为首页 | 会员中心 | 我要投稿 辽源站长网 (https://www.0437zz.com/)- 云专线、云连接、智能数据、边缘计算、数据安全!
当前位置: 首页 > 服务器 > 安全 > 正文

2017数据库大会实录-MySQL核心参数含义的源码解析

发布时间:2021-01-17 14:01:40 所属栏目:安全 来源:网络整理
导读:《2017数据库大会实录-MySQL核心参数含义的源码解析》要点: 本文介绍了2017数据库大会实录-MySQL核心参数含义的源码解析,希望对您有用。如果有疑问,可以联系我们。 5月11-13日在北京国际会议中心举行数据库大会,有幸得友人推荐在大会上讲了一场.源于自己
副标题[/!--empirenews.page--]

《2017数据库大会实录-MySQL核心参数含义的源码解析》要点:
本文介绍了2017数据库大会实录-MySQL核心参数含义的源码解析,希望对您有用。如果有疑问,可以联系我们。

5月11-13日在北京国际会议中心举行数据库大会,有幸得友人推荐在大会上讲了一场.源于自己曾经参加一些技术大会的感受——抱着学习的目的,非常兴奋非常饥渴的过去了,但往往也是相当饥渴的回来了,并不是老师分享的内容没有营养跟价值,而往往是老师讲得内容太高大上,太丰富,营养价值过高,难以在短短的一个小时内吸收消化,所以依然是饥饿的 .基于这样的感受,所以作者在这次大会分享一个“接地气”的内容,心想从事mysql运维或者使用mysql的朋友,或多或少的都想知道数据库内部的运行机制,以及更想知道数据库参数该如何设置,才能使数据库的性能得到最大的发挥,所以以”MySQL核心参数含义的源码解析”为题目,来进行分享,希望让听讲的朋友们对mysql参数有更深入的理解.

目地是美好的,但效果却很骨感的.为了抓紧这短暂40~50分钟的时间,中间毫不间断的,差不多以作者最快的语速,侧着身拿着荧光笔,不停在这大屏幕上一边笔画,一边讲解,目的是希望在有限的时间内把所有必要的细节都讲到,以至忘了这是一场演讲,而不是真正地当老师在讲课,杯具......

当我以最快的速度在规定的时间把内容讲完,台下的所认识的朋友跟我反馈说,前面一半跟上了,后面稍微没留神,没有跟上,后面就完全听不懂了.太失落了,跟我想的效果完全不一样啊,我讲得够详细了,只不过语速快了点.但令作者还有些安慰的是:有陌生的听众在分享后当场跑过来跟我反馈说,你分享的内容真的很好,连代码的细节都讲到了,非常受益.兄弟,跪谢了,总算还有人懂我.

既然是分享,目的是让更多的希望收获知识的朋友得到分享的内容.作者现将ppt的内容,以及解析的内容以文子的形式描述出来,希望让没参加大会的朋友,也能比较容易的了解这次分享的内容.同时,也能够让在大会上没有听明白的朋友继续补习.坚守到最后一场,听作者演讲,没有半点收获,作者岂不是愧对你们了. 再次谢谢坚持下来听我分享的朋友.

纯干货分享内容拿走不谢,但不欢迎网站或者公众号未经同意转载!!!

下面是分享后整理的实录内容:

大家下午好,今天我分享的主题是”mysql核心参数含义的源码解析“.mysql的参数非常多,鉴于今天下午时间的关系,我只会讲其中一部分参数,这部分参数是关于buffer pool . 我们通过解析buffer pool(缓存池)的源代码,来直观地了解这些参数的真正含义.

这个是今天要讲的内容:我们首先简单介绍buffer pool的工作机制,然后去解析buffer pool的核心函数.(讲完后,因为看到上面的目录,有听众问我是不是写了这本书,要问我买.其实我只是借用了word生成目录的功能.)

在正式讲今天的内容之前,我们来简单聊一下,在mysql日常运维过程中,我们所经历的一些困惑.例如有时候数据库莫名其妙的变慢了,通常(或者可能)在10分钟前还是好好的,现在却出现了问题.在我们进行诊断的时候,可能会发现cpu,或者io,memory等出现了一些状况.甚至有个时候,将这些指标跟10分钟之前比较,看不出任何异常.

假如有幸我们发现了一些异常现象,但这些异常的现象,是产生问题本身的原因还是问题出现后表现出来的现象?仅仅从现象本身来看,是不太好定位问题产生的原因的.

在遇到一些不好定位的问题之后,跟同事讨论后,但又各自可能有不同的意见,不同的观点,这通常是我们最大的困惑——问题没有解决,而且对问题背后的原因没有定论,接下来不知道该如何处理?但计算机世界是一个客观的世界,不存在主观性,问题背后的原因一定是确定的,虽然有可能是多种因数在特定条件下综合在一起的结果.这类问题往往是最难定位的,从片面地维度来寻找答案都是失真的,错误的.所以,在这个时候,当我们对数据库内部越来越了解,了解得越来越全面,定位这类问题就会越来越准确,越来越接近问题的本质.下面就让我们来一起对mysql的知识进行深入的了解.

下面我们正式来讲今天的内容: mysql的参数非常多,我简单地列出一部分并做一下简单的分类.

跟事务安全/事务提交相关的参数,例如最著名innodb_flush_log_at_trx_commit,sync_binlog .

跟各种类型cache相关的参数,例如thread_cache_size,

table_open_cache.

其他重要的参数,例如跟并发控制相关的参数,例如max_connection,innodb_thread_concurrency. ?我们今天要讲这部分参数,就是buffer pool(缓存池)相关的,这里提出了多个关于buffer pool的参数,不知大家对这些参数的含义是否有比较清晰的、深入的理解? 如果绝大部分朋友对这些参数尚未完全了解,那很好. 我们今天下午的分享就比较有价值 .后面会对buffer pool源码进行解析,会比较清楚地介绍到这些参数在哪些函数中被使用到,通过了解这些函数的功能跟实现,也就能直观地了解这些参数的含义.

我们先来简单地看一下buffer pool的工作机制.根据我的理解,buffer pool两个最主要的功能:一个是加速读,一个是加速写.加速读呢? 就是当需要访问一个数据页面的时候,如果这个页面已经在缓存池中,那么就不再需要访问磁盘,直接从缓冲池中就能获取这个页面的内容.加速写呢?就是当需要修改一个页面的时候,先将这个页面在缓冲池中进行修改,记下相关的重做日志,这个页面的修改就算已经完成了.至于这个被修改的页面什么时候真正刷新到磁盘,这个是buffer pool后台刷新线程来完成的,后面会详细讲到.

(编辑:辽源站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读