随笔分类 -  数据库 / MySQL

摘要:运行了一段时间以后MGR集群,需要扩容节点,这是一个常见的需求。很多时候我们都喜欢用mysqldump工具来进行,因为这个工具有一个很好用的参数叫做master-data以及single-transaction,可以轻松的获取一致性备份。但是这个备份工具速度慢,无论导入导出速度都很慢,对于一个运行已 阅读全文
posted @ 2020-06-28 13:38 wingsless 阅读(786) 评论(0) 推荐(0) 编辑
摘要:1.前言 缓冲池是数据库最终的概念,数据库可以将一部分数据页放在内存中形成缓冲池,当需要一个数据页时,首先检查内存中的缓冲池是否有这个页面,如果有则直接命中返回,没有则从磁盘中读取这一页,然后缓存到内存并返回。 但是内存的价值较高,一般来说服务器的内存总是小于磁盘大小的,而且内存不能完全分配给数据库 阅读全文
posted @ 2020-02-11 15:28 wingsless 阅读(27978) 评论(5) 推荐(14) 编辑
摘要:在之前的文章中我详细描述了如何利用ShardingSphere JDBC进行分库分表,同时也实现了简单的精确分库算法接口,详情见下面的链接: "利用ShardingSphere JDBC实现分库分表" 但是观察一下配置文件,我现在只有两张表的情况下就已经用了60行来做配置,如果说我在一个真实的系统中 阅读全文
posted @ 2019-08-29 22:48 wingsless 阅读(3252) 评论(0) 推荐(0) 编辑
摘要:客户现场反馈,top的检查结果中,一个CPU的占用一直是100%。实际上现场有4个CPU,而且这个服务器是mysql专属服务器。 我的第一反应是io_thread一类的参数设置有问题,检查以后发现read和write的thread设置都是4,这和CPU数一致,因此可以断定这并不是单颗CPU占用过高的 阅读全文
posted @ 2018-12-11 13:34 wingsless 阅读(3241) 评论(0) 推荐(1) 编辑
摘要:原创内容,转载请注明出处 http://www.cnblogs.com/wingsless/p/6803542.html 现象描述 测试中发现,服务A在得到了服务B的注册用户成功response以后,开始调用查询用户信息接口,却发现无法查询出任何结果。检查binlog发现,在查询请求之前,数据库确实 阅读全文
posted @ 2017-05-03 19:32 wingsless 阅读(28133) 评论(7) 推荐(2) 编辑
摘要:起因 bonecp不具备回缩功能,即连接池持有连接之后,不会主动去释放这些连接(即使这些连接始终处于空闲状态),因此在使用一段时间之后,连接池会达到配置的最大值。 这种方式一定程度上造成了资源的浪费。 改造 参考tomcat jdbc的策略,每隔一段时间(可配置)会启动定时任务扫描partition 阅读全文
posted @ 2017-02-10 20:15 wingsless 阅读(456) 评论(0) 推荐(0) 编辑
摘要:转载请标明链接:http://www.cnblogs.com/wingsless/p/6349434.html boneCP连接的实现 boneCP自己实现了标准的java.sql.Connection接口,除了会持有Connection对象之外,还会拥有一些属性用于标记连接的创建时间,空闲时间等。 阅读全文
posted @ 2017-01-25 14:22 wingsless 阅读(2271) 评论(0) 推荐(0) 编辑
摘要:转载请注明源链接:http://www.cnblogs.com/wingsless/p/6188659.html boneCP是一款关注高性能的数据库连接池产品 "github主页" 。 不过最近作者好像没有心思更新了,因为他发现了一款更快的连接池产品,但是这不影响我学习它。 连接的生存时间 MyS 阅读全文
posted @ 2016-12-16 22:18 wingsless 阅读(2006) 评论(0) 推荐(0) 编辑
摘要:原创文章,转载请标明原文链接:http://www.cnblogs.com/wingsless/p/5708992.html 昨天写了有关事务日志的一些基本点(http://www.cnblogs.com/wingsless/p/5705314.html),今天结合我最近的学习成果继续总结事务日志的 阅读全文
posted @ 2016-07-26 21:21 wingsless 阅读(1227) 评论(0) 推荐(0) 编辑
摘要:原创文章,转载请注明原文链接(http://www.cnblogs.com/wingsless/p/5705314.html) 在之前的文章《InnoDB的WAL方式学习》(http://www.cnblogs.com/wingsless/p/5203064.html)里,我分析了WAL是什么,触发 阅读全文
posted @ 2016-07-25 20:58 wingsless 阅读(1487) 评论(0) 推荐(0) 编辑
摘要:转载请附原文链接:http://www.cnblogs.com/wingsless/p/5582063.html 昨天写到了InnoDB缓冲池的预读:《InnoDB源码分析--缓冲池(二)》,最后因为着急看欧洲杯,没有把线性预读写完,今天接着写。 线性预读是由这个函数实现的:buf_read_ahe 阅读全文
posted @ 2016-06-13 21:17 wingsless 阅读(1046) 评论(0) 推荐(0) 编辑
摘要:转载请附原文链接:http://www.cnblogs.com/wingsless/p/5578727.html 上一篇中我简单的分析了一下InnoDB缓冲池LRU算法的相关源码,其实说不上是分析,应该是自己的笔记,不过我还是发扬大言不惭的精神写成分析好了。在此之后,我继续阅读了Buf0rea.c文 阅读全文
posted @ 2016-06-12 20:53 wingsless 阅读(1827) 评论(0) 推荐(0) 编辑
摘要:最开始学Oracle的时候,有个概念叫SGA和PGA,是非常重要的概念,其实就是内存中的缓冲池。InnoDB的设计类似于Oracle,也会在内存中开辟一片缓冲池。众所周知,CPU的速度和磁盘的IO速度相差可以用鸿沟来形容,因此聪明的前辈们使用了内存这个ROM来弥补这道鸿沟,那么数据库的设计者们也继承 阅读全文
posted @ 2016-06-08 20:56 wingsless 阅读(4035) 评论(0) 推荐(0) 编辑
摘要:我好久没有写这个系列了,也确实不知道写什么。回首我学习数据库的路,最开始搞Oracle的时候其实没有搞懂Oracle,也不知道学了什么,后来学习MySQL尤其是InnoDB才大概入了门了。我最开始学习MySQL的时候直接看的是《高性能MySQL》,真的是写的比较深,学了好多好多回才知道了。不过不可否 阅读全文
posted @ 2016-05-23 21:27 wingsless 阅读(802) 评论(1) 推荐(0) 编辑
摘要:写了两篇《MySQL入门》以后我发现,写书的人还是都挺有本事的,起码人家知道怎么编排自己想讲的知识点,我实在是不知道该先说那里后说哪里,那我就想到什么讲什么吧。 一 写SQL 其实我是不想写有关SQL的部分的,因为这个部分其实很简单,基本上大学只要好好听听数据库概论这门课基本上都能写满足功能的SQL 阅读全文
posted @ 2016-03-11 22:22 wingsless 阅读(1281) 评论(0) 推荐(0) 编辑
摘要:一 MySQL概述 MySQL是一个很受欢迎的开源数据库,当我从Oracle转来做MySQL的时候,感觉最深刻的一点就是,这家伙居然是Server和Storage分开的!而且更不能忍的是,它竟然是插件式存储引擎,每一种引擎的特点是很不相同的,当时我感觉这东西也太难学了吧,我要学多少个引擎啊。后来我发 阅读全文
posted @ 2016-02-25 22:05 wingsless 阅读(967) 评论(0) 推荐(0) 编辑
摘要:最近一直都在搞新员工的培训材料,MySQL的培训PPT我居然写了100多页,我都佩服我自己的毅力了。不如现在把这些总结一下,慢慢写到博客里,供入门者参考。 一 关系型数据库 关系型数据库的理论提出于上世纪七十年代,由IBM的研究员E.F.Codd的论文提出。 关系型数据库的理论基础可以参考王珊和萨师 阅读全文
posted @ 2016-02-24 20:29 wingsless 阅读(1641) 评论(1) 推荐(1) 编辑
摘要:之前写过一篇博文,《不好的MySQL过程编写习惯》(http://www.cnblogs.com/wingsless/p/5041838.html)。这篇博文里强调了不要循环的提交事务,尽量将可以放在一起的SQL同一个事务提交,会快很多很多。博文中提到了redo的问题,因此,结合最近编写新员工培训材 阅读全文
posted @ 2016-02-20 12:37 wingsless 阅读(1852) 评论(0) 推荐(0) 编辑
摘要:最近一段时间在准备新员工培训的材料,本来打算介绍介绍概念就OK的,但是既然写了事务的章节,就特别想介绍一下锁,介绍了锁,就忍不住想介绍一下Next-Key Lock。 大家知道,标准的事务隔离级别有READ UNCOMMITTED,READ COMMITTED,REPEATED READ和SERIA 阅读全文
posted @ 2016-02-20 12:03 wingsless 阅读(2829) 评论(1) 推荐(0) 编辑
摘要:刚才为了测试一个东西,写了个存储过程: delimiter $$drop procedure if exists sp_test$$create procedure sp_test()begin declare v_cnt int; set v_cnt = 0; while v_cnt ... 阅读全文
posted @ 2015-12-12 21:09 wingsless 阅读(1153) 评论(0) 推荐(0) 编辑