2020-11-24
关于数据库锁的总结

前言本文主要是在总结MySQL数据库锁时,记录的一些笔记。按锁的粒度划分分为:行锁、页锁、表锁锁定的粒度越小,发生锁冲突的概率越低,可以实现的并发度越高 ;但是对于锁的开销比较大,加锁会比较慢,容易出现死锁。行锁的三种类型Record Lock 单个记录上的锁对索引项加锁,如果innodb引擎的表在建立的时候 没...

Read More
 2020-11-19
阿肝正传之Redis哨兵机制(一)

前言Redis主从同步是提升了可用性,从库挂了,还有多个从库可以使用。但是如果主库挂了,该怎么办呢?这就要提到哨兵机制了。在Redis主从集群中,哨兵机制是实现主从库自动切换的关键机制,有效的解决了主从复制模式下故障转移的问题。哨兵机制的基本流程哨兵机制就是一个运行在特殊模式下的Redis进程,主从库实例运行的同...

Read More
 2020-11-18
阿肝正传之Redis主从同步

前言一门技术光停留在会用的层面远远不够,必须要深入的掌握其原理,然后加以理解和总结,才能叫“会”。本文是在深入了解Redis主从同步原理时,记录的学习笔记。目的Redis提供了主从库模式,实现了Redis的高可用,保证多个实例的数据一致性。主从库之间采用的是读写分离的方式读写分离的架构读操作:主从都可以接受;写操...

Read More
 2020-04-12
TCP协议学习总结(一)

前言本文是学习极客时间《趣谈网络协议》第12节课程时整理的笔记。TCP包头格式源端口号和目标端口号是必不可少,否则数据不知道该分发给哪个应用。包的序号是为了解决乱序的问题。确认序号,是为了解决不丢包的问题。发出去的包都应该要有确认,否则不清楚对方有没有收到;没有收到则会重新发送。状态位:SYN 是发起一个连接,A...

Read More
 2020-03-21
PHP导出Excel的优化

背景针对PHP导出Excel的优化,在我之前的一篇文章里已经做过介绍:关于PHP内存溢出的思考,本文主要是介绍一款高性能的导出组件–xlswriter,他是一个PHP C扩展,官方文档地址,请点击。安装安装pecl当我们发现pecl未安装时,则需要安装pecl。一般情况下,是安装在PHP的安装目录,示例命令如下:...

Read More
 2019-11-16
gocron入门笔记

背景最近在开发过程中,感觉到管理在不同机器上的管理不同定时任务有点麻烦,于是想集中化管理定时任务。经过一番调研,选择了gocron-定时任务管理系统。介绍github地址:https://github.com/ouqiang/gocron优势:基于go语言开发的一款轻量级定时任务集中调度和管理系统,性能高,页面操...

Read More
 2019-10-16
一次定时任务配置错误引发的思考

背景某业务人员反应系统登陆不上去,于是程序员自己试着登陆系统成功了,心里很自信的认为“我的代码没有问题”,便让业务人员再试试。然后业务人员是登陆成功了,但是整个系统用起来很卡,这下程序员意识到是系统的问题了。排查步骤因为刚刚上线了新的功能,想到了配置了定时任务,可能是定时任务配置错误,导致PHP启了过多进程。使用...

Read More
 2019-09-26
关于PHP内存溢出的思考

背景最近做大批量数据导出和数据导入的时候,经常会遇到PHP内存溢出的问题,在解决了问题之后,总结了一些经验,整理成文章记录下。优化点 优化SQL语句,避免慢查询,合理的建立索引,查询指定的字段,sql优化这块在此就不展开了。 查询的结果集为大对象时转数组处理,框架中一般有方法可以转,如Laravel中有toA...

Read More
 2019-05-04
Laravel_quick_admin

介绍项目技术栈:基于laravel5.5 + H-ui开发的一款基础后台管理系统项目地址:https://github.com/tsmliyun/laravel_quick_admin项目图片:背景起这个项目的初衷是,对于一个后台管理系统,登陆、注销、权限管理等都是些公用的模块,完全可以封装成一个基础项目,每次新...

Read More
 2019-02-07
深入浅出索引

深入浅出索引本文是在看极客时间《Mysql实战45讲》时记的笔记,整理下加深理解。简单来说,数据库索引就是为了提高数据库查询的效率,就像书的目录一样,可以根据目录快速的找到其中的某一个知识点。索引模型 哈希表 有序数组 搜索树简单的介绍下以上三种模型:哈希表是一种以键-值(key-value)存储的数据结构...

Read More
 2019-01-30
Laravel一次发布导致的bug

背景laravel项目的某一次发布后,项目中连接数据库突然报错,而用同样的数据库账号密码在机器上连接是可以的。临时解决方案经过短暂时间的排查,没找到原因,原数据库密码DB_PASSWORD=abcde#142!*,修改数据库密码为DB_PASSWORD=abcde2019后,恢复正常。排查思路变更密码后,数据库能...

Read More
 2019-01-26
MySQL事务隔离

事务的介绍事务就是一组原子性的sql查询,或者说是一个独立的工作单元。简而言之,事务内的语句要么全部执行成功,要么全部执行失败。在Mysql中,事务支持是在引擎层实现的,但并不是所有的Mysql引擎都支持事务,比如MyISAM引擎就不支持事务,这也是MyISAM被InnoDB取代的重要原因之一。提到事务,我们肯定...

Read More
 2018-09-15
MySQL数据类型

作者的故事

原本觉得mysql数据类型是非常简单并十分基础的知识,认为自己掌握的差不多了。但经过上一次的面试,才发现自己掌握的并不牢固,很多细节和原理并不知道。后来翻阅了《高性能mysql》这本书,仔细阅读了第四章Schema与数据类型优化。因此,写这篇文章记录和总结下,并加深理解。

Read More
 2020-11-24
关于数据库锁的总结

前言本文主要是在总结MySQL数据库锁时,记录的一些笔记。按锁的粒度划分分为:行锁、页锁、表锁锁定的粒度越小,发生锁冲突的概率越低,可以实现的并发度越高 ;但是对于锁的开销比较大,加锁会比较慢,容易出现死锁。行锁的三种类型Record Lock 单个记录上的锁对索引项加锁,如果innodb引擎的表在建立的时候 没...

Read More
 2019-02-07
深入浅出索引

深入浅出索引本文是在看极客时间《Mysql实战45讲》时记的笔记,整理下加深理解。简单来说,数据库索引就是为了提高数据库查询的效率,就像书的目录一样,可以根据目录快速的找到其中的某一个知识点。索引模型 哈希表 有序数组 搜索树简单的介绍下以上三种模型:哈希表是一种以键-值(key-value)存储的数据结构...

Read More
 2019-01-26
MySQL事务隔离

事务的介绍事务就是一组原子性的sql查询,或者说是一个独立的工作单元。简而言之,事务内的语句要么全部执行成功,要么全部执行失败。在Mysql中,事务支持是在引擎层实现的,但并不是所有的Mysql引擎都支持事务,比如MyISAM引擎就不支持事务,这也是MyISAM被InnoDB取代的重要原因之一。提到事务,我们肯定...

Read More
 2018-09-15
MySQL数据类型

作者的故事

原本觉得mysql数据类型是非常简单并十分基础的知识,认为自己掌握的差不多了。但经过上一次的面试,才发现自己掌握的并不牢固,很多细节和原理并不知道。后来翻阅了《高性能mysql》这本书,仔细阅读了第四章Schema与数据类型优化。因此,写这篇文章记录和总结下,并加深理解。

Read More
 2020-03-21
PHP导出Excel的优化

背景针对PHP导出Excel的优化,在我之前的一篇文章里已经做过介绍:关于PHP内存溢出的思考,本文主要是介绍一款高性能的导出组件–xlswriter,他是一个PHP C扩展,官方文档地址,请点击。安装安装pecl当我们发现pecl未安装时,则需要安装pecl。一般情况下,是安装在PHP的安装目录,示例命令如下:...

Read More
 2019-09-26
关于PHP内存溢出的思考

背景最近做大批量数据导出和数据导入的时候,经常会遇到PHP内存溢出的问题,在解决了问题之后,总结了一些经验,整理成文章记录下。优化点 优化SQL语句,避免慢查询,合理的建立索引,查询指定的字段,sql优化这块在此就不展开了。 查询的结果集为大对象时转数组处理,框架中一般有方法可以转,如Laravel中有toA...

Read More
 2019-05-04
Laravel_quick_admin

介绍项目技术栈:基于laravel5.5 + H-ui开发的一款基础后台管理系统项目地址:https://github.com/tsmliyun/laravel_quick_admin项目图片:背景起这个项目的初衷是,对于一个后台管理系统,登陆、注销、权限管理等都是些公用的模块,完全可以封装成一个基础项目,每次新...

Read More
 2019-01-30
Laravel一次发布导致的bug

背景laravel项目的某一次发布后,项目中连接数据库突然报错,而用同样的数据库账号密码在机器上连接是可以的。临时解决方案经过短暂时间的排查,没找到原因,原数据库密码DB_PASSWORD=abcde#142!*,修改数据库密码为DB_PASSWORD=abcde2019后,恢复正常。排查思路变更密码后,数据库能...

Read More
 2019-10-16
一次定时任务配置错误引发的思考

背景某业务人员反应系统登陆不上去,于是程序员自己试着登陆系统成功了,心里很自信的认为“我的代码没有问题”,便让业务人员再试试。然后业务人员是登陆成功了,但是整个系统用起来很卡,这下程序员意识到是系统的问题了。排查步骤因为刚刚上线了新的功能,想到了配置了定时任务,可能是定时任务配置错误,导致PHP启了过多进程。使用...

Read More
 2019-11-16
gocron入门笔记

背景最近在开发过程中,感觉到管理在不同机器上的管理不同定时任务有点麻烦,于是想集中化管理定时任务。经过一番调研,选择了gocron-定时任务管理系统。介绍github地址:https://github.com/ouqiang/gocron优势:基于go语言开发的一款轻量级定时任务集中调度和管理系统,性能高,页面操...

Read More
 2020-04-12
TCP协议学习总结(一)

前言本文是学习极客时间《趣谈网络协议》第12节课程时整理的笔记。TCP包头格式源端口号和目标端口号是必不可少,否则数据不知道该分发给哪个应用。包的序号是为了解决乱序的问题。确认序号,是为了解决不丢包的问题。发出去的包都应该要有确认,否则不清楚对方有没有收到;没有收到则会重新发送。状态位:SYN 是发起一个连接,A...

Read More
 2020-11-19
阿肝正传之Redis哨兵机制(一)

前言Redis主从同步是提升了可用性,从库挂了,还有多个从库可以使用。但是如果主库挂了,该怎么办呢?这就要提到哨兵机制了。在Redis主从集群中,哨兵机制是实现主从库自动切换的关键机制,有效的解决了主从复制模式下故障转移的问题。哨兵机制的基本流程哨兵机制就是一个运行在特殊模式下的Redis进程,主从库实例运行的同...

Read More
 2020-11-18
阿肝正传之Redis主从同步

前言一门技术光停留在会用的层面远远不够,必须要深入的掌握其原理,然后加以理解和总结,才能叫“会”。本文是在深入了解Redis主从同步原理时,记录的学习笔记。目的Redis提供了主从库模式,实现了Redis的高可用,保证多个实例的数据一致性。主从库之间采用的是读写分离的方式读写分离的架构读操作:主从都可以接受;写操...

Read More