langjitianyaluotongxue

导航

统计

随笔分类 -  mysql优化

所有有关mysql优化的内容集成
16 简单的LRU链表在Buffer Pool实际运行中,可能导致哪些问题?
摘要:1.预读会带来一个巨大的问题? 预读机制也就是从磁盘加载一个数据页的时候,也可能连带着把这个数据页相邻的其他的数据页也加载到缓存里去 举个例子,假设现在有两个空闲页,然后在加载数据页的时候也顺带把他相邻的数据页也加载到缓存里,正好每个数据页放一个空闲的缓存页,但是接下来呢,实际上只有一个缓存页被访问 阅读全文

posted @ 2022-09-19 17:40 浪迹天涯骆同学 阅读(27) 评论(0) 推荐(0) 编辑

15 当Buffer Pool中的缓存页不够的时候,如何基于LRU算法淘汰部分缓 存?
摘要:1.哪些缓存页是脏页? 最终在内存里更新的数据,都是要被刷回磁盘的,不可能所有的缓存页都被刷回磁盘,因为有的缓存页是查询时被读取到Buffer Pool中的,从来没有被修改过,所以数据库引入了一个和free链表类似的flush链表,凡是被修改过的缓存页,都会把他的描述数据块加入到flush链表,fl 阅读全文

posted @ 2022-09-19 15:58 浪迹天涯骆同学 阅读(28) 评论(0) 推荐(0) 编辑

13 从磁盘读取数据页到Buffer Pool的时候,free链表有什么用?
摘要:1.数据库启动的时候,是如何初始化Buffer Pool的? 数据库一启动就会按照你设置的Buffer Pool的大小,在操作系统里分配一块内存区域,作为Buffer Pool内存区域 当内存区域申请完毕之后,数据库就会按照默认的缓存页16kB的大小以及对应的800个字节左右的描述数据的大小,在Bu 阅读全文

posted @ 2022-09-19 14:04 浪迹天涯骆同学 阅读(30) 评论(0) 推荐(0) 编辑

12 Buffer Pool这个内存数据结构到底长个什么样子?
摘要:1.如何配置你的 buffer pool 的大小? Buffer Pool可以看做是一个内存组件,默认的大小是128Mb,在实际生产中可以进行大小的调整 比如我们的数据库是16核32G的机器,那么你可以给Buffer pool分配2G的内存,使用以下配置: [server]innodb_buffer 阅读全文

posted @ 2022-09-16 14:26 浪迹天涯骆同学 阅读(39) 评论(0) 推荐(0) 编辑

08 生产经验:在数据库的压测过程中,如何360度无死角观察机器性能?
摘要:1.除了QPS和TPS外,我们还应该观察机器的性能 如果使用10个线程去压测数据库,此时性能还很高,其实可以在sysbench继续增加线程的数量,比如使用50个线程,100个线程直到QPS和TPS上不去了,当然我们在提高线程数量的时候不要盲目的压测 2.为什么在不停的增加线程数量的时候,要密切关注机 阅读全文

posted @ 2022-09-16 10:21 浪迹天涯骆同学 阅读(37) 评论(0) 推荐(0) 编辑

07 生产经验:如何对生产环境中的数据库进行360度无死角压测?
摘要:1、一款非常好用的数据库压测工具上一篇文章给大家讲解了我们在压测的过程中要关注哪些东西,这一篇文章就来带着大家一步一步的利用一个工具进行数据库压测。先给大家介绍一个非常好用的数据库压测工具,就是sysbench,这个工具可以自动帮你在数据库里构造出来大量的数据,你想要多少数据,他就自动给你构造出来多 阅读全文

posted @ 2022-09-15 17:14 浪迹天涯骆同学 阅读(48) 评论(0) 推荐(0) 编辑

06 生产经验:互联网公司的生产环境数据库是如何进行性能测试的?
摘要:1.机器申请下来后要对数据库进行压测,这时你心里应该清楚,如果你申请的是8核16G的机器,就大概知道这个数据库每秒可以抗一两千请求,你申请16核32G的机器部署mysql就知道大概可以每秒抗两三千或者三四千的并发请求 2.把机器交给DBA,让他部署Mysql,接着DBA搞定这台机器上的数据库后把用户 阅读全文

posted @ 2022-09-15 15:35 浪迹天涯骆同学 阅读(54) 评论(0) 推荐(0) 编辑

生产经验:真实生产环境下的数据库机器配置如何规划?
摘要:1.如果你的java系统没什么并发,也就几十人,几百人用,不用考虑数据库的配置问题 如果并发高,那就要考虑了压测方案了,当这一系列做好后,才考虑开发你的java系统,去操作你的数据库,实现各种各样的业务逻辑 2.普通的java应用系统部署在机器上能抗多少并发? java系统部署的时候选用的常用的是2 阅读全文

posted @ 2022-09-15 09:45 浪迹天涯骆同学 阅读(134) 评论(0) 推荐(0) 编辑

04 借着更新语句在InnoDB存储引擎中的执行流程,聊聊binlog是什么?
摘要:1.mysql的binlog到底是什么东西? binlog是归档日志,他里面记录的是偏向于逻辑性的日志,比如对use表id=10这行做了更新操作,更新后的值是什么 binlog不是innoDB存储引擎特有的日志文件,是属于mysql server 自己的日志文件 2.提交事务的时候同时写入binlo 阅读全文

posted @ 2022-09-14 17:11 浪迹天涯骆同学 阅读(99) 评论(0) 推荐(0) 编辑

用一次数据更新流程,初步了解InnoDB存储引擎的架构设计
摘要:1.更新语句在mysql中是怎么执行的 mysql最常用的就是InnoDB存储引擎,一个系统通过一个数据库发送到mysql上,然后肯定会经过SQL接口,解析器,优化器,执行器几个环节,解析sql语句,生成执行计划,接着由执行器负责这个计划的执行,调用innoDB引擎的接口去执行。 2.innoDB重 阅读全文

posted @ 2022-09-13 11:43 浪迹天涯骆同学 阅读(75) 评论(0) 推荐(0) 编辑

为了执行SQL语句,你知道MySQL用了什么样的架构设计吗?
摘要:1.数据库也是一个服务器,也存在数据库连接池,当数据库服务器接收到网络连接请求时,会有一个线程监听和读取这个网络请求 2.mysql内部有一个组件,SQL接口,他是一套专门执行sql语句的接口,专门执行我们发给mysql的那些增删改查语句 3.把sql语句直接交给mysql,mysql是解析不了的, 阅读全文

posted @ 2022-09-08 16:33 浪迹天涯骆同学 阅读(14) 评论(0) 推荐(0) 编辑

天天写CRUD,你知道你的系统是如何跟MySQL打交道的吗?
摘要:1.代码访问mysql数据库,是通过引入mysql的驱动jar包(mysql-connector-java),引入这个jar包才能和数据库进行连接,有了连接后才能进行数据库的crud的sql语句 2.数据库连接池是干嘛的?当多个用户同时请求这个系统的时候,我们的java系统部署在tomcat服务器上 阅读全文

posted @ 2022-09-08 15:35 浪迹天涯骆同学 阅读(29) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示